Apache camel 带春季批次的骆驼路线:无JobLauncher

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)

我正在部署一个由驼峰路径触发的Spring批处理作业。以下是Spring批处理配置:

@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引用?