Apache camel 带春季批次的骆驼路线:无JobLauncher
我正在部署一个由驼峰路径触发的Spring批处理作业。以下是Spring批处理配置:Apache camel 带春季批次的骆驼路线:无JobLauncher,apache-camel,spring-batch,Apache Camel,Spring Batch,我正在部署一个由驼峰路径触发的Spring批处理作业。以下是Spring批处理配置: @Configuration @EnableBatchProcessing public class JobConfig { ... @Bean(name = "personJob") public Job personJob(JobCompletionNotificationListener personListener, Step personStep)
@Configuration
@EnableBatchProcessing
public class JobConfig
{
...
@Bean(name = "personJob")
public Job personJob(JobCompletionNotificationListener personListener, Step personStep)
{
return jobBuilderFactory
.get(...)
.incrementer(new RunIdIncrementer())
.listener(...)
.flow(...)
.end()
.build();
}
...
骆驼路线如下所示:
@ApplicationScoped
public class MyRouteBuilder extends RouteBuilder
{
@Override
public void configure() throws Exception
{
from("file://...")
...
.to("spring-batch:personJob?jobLauncherRef=jobLauncher");
}
运行上述路由会引发以下异常:
[ERROR] Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: spring-batch://personJob?jobLauncherRef=jobLauncher due to: No JobLauncher named jobLauncher found in the registry.
[ERROR] Caused by: java.lang.IllegalStateException: No JobLauncher named jobLauncher found in the registry."}}}}
然而,文件明确指出:
@EnableBatchProcessing的工作原理与另一个@Enable类似*
Spring族中的注释。在本例中,@EnableBatchProcessing
提供用于生成批处理作业的基本配置。在此范围内
在基本配置中,除了创建
可用于自动连线的多个bean:
JobRepository: bean name "jobRepository"
JobLauncher: bean name "jobLauncher"
...
所以,应该有一个名为“jobLauncher”的bean,类型为jobLauncher。为什么在注册表中找不到它
多谢各位
西摩我不熟悉Camel,但它是否会引导到自己的弹簧梁工厂环境中,这与加载spring batch job launcher子系统的环境不同?Atmas说+1。Camel如何解析表达式中定义的
from(“file://...)到(“春季批次:personJob?jobLauncherRef=jobLauncher”)代码>?它是否看到由JobConfig
spring配置类定义的bean引用?