试图通过CamelContext运行Camel路由,autoStartup设置为false



我有以下骆驼路由,我试图通过CamelContext直接运行autoStartup设置为false@ component

@ConfigurationProperties()
public class S3IntegratorRoute extends RouteBuilder {
@Value("${base.url}")
private String url;
@Value("#{${queryParams}}")
private Map<String, String> query;
@Autowired
@Qualifier("jsonConversionProcessor")
private Processor jsonProcessor;
@Override
public void configure() throws Exception {

String queryParams = Util.buildQueryParams(query);
from("timer:mytimer?repeatCount=1")
// from("timer://manualRestart?repeatCount=1")
.routeId("manualRestart").autoStartup(false)
.setHeader(Exchange.HTTP_QUERY, simple(queryParams))
.to(url).process(jsonProcessor);
}
}

我试图在主应用程序类中运行此路由,如下所示-

@SpringBootApplication
//@EnableDiscoveryClient
public class CollibraApiApplication {
public static void main(String[] args) throws Exception {
ApplicationContext ctx = SpringApplication.run(CollibraApiApplication.class, args);
S3IntegratorRoute s3IntegratorRoute = ctx.getBean(S3IntegratorRoute.class);
ExtendedCamelContext camelContext = ctx.getBean(ExtendedCamelContext.class);
camelContext.addRoutes(s3IntegratorRoute);
camelContext.start();
}
}

但是当我启动这个春季启动应用程序时,我在控制台日志中得到以下消息,并且路由没有启动-

] o.a.c.p impl.engine. abstractcamelcontext:跳过启动路由manualRestart,因为它配置了autoStartup=false
2023-03-30 14:41:50.451 [] INFO 25808—[main] o.a.c.p impl.engine. abstractcamelcontext: 1个路由,其中0个已经启动
2023-03-30 14:41:50.453 [] INFO 25808—[main] o.a.c.p impl.engine. abstractcamelcontext: Apache Camel 3.3.0 (CamelContext: Camel -1)在0.030秒内启动

有人能给一个例子,如何运行这条路线直接通过CamelContext或有任何其他方式?

希望直接运行Camel Route而不是autoStartup

当使用autoStartup(false)时,Camel做NOT启动路由,因此当您启动CamelContext(Camel本身)时,您可以从日志中看到启动了0条路由。这是意料之中的。如果您希望路由启动,则删除autoStartup或将其值设置为true

请参阅autoStartup网站上的文档获取更多详细信息。