Java ApacheCamel动态消费者

Java ApacheCamel动态消费者,java,spring,apache,apache-camel,Java,Spring,Apache,Apache Camel,我已经创建了这个骆驼路线 from("direct:pageExtraction") .bean(PageManager.class, "setProperties(*, ${headers})") .filter().method(PageManager.class, "exists").to("seda:pagePostProcessing").end() .to("seda:pageImposition");

我已经创建了这个骆驼路线

from("direct:pageExtraction")
            .bean(PageManager.class, "setProperties(*, ${headers})")
            .filter().method(PageManager.class, "exists").to("seda:pagePostProcessing").end()
            .to("seda:pageImposition");

            from("seda:pagePostProcessing")
            .bean(PageManager.class, "extractThumbnail(*, ${headers})")
            .bean(PageManager.class, "extractCMYKSeparation(*, ${headers})")
            .bean(PageManager.class, "persist(*, ${headers})")
            .bean(PageManager.class, "cleanUp(${headers})")
            .to("seda:pageImposition");

            from("seda:pageImposition")
            .bean(PageManager.class, "extractImposition(*, ${headers})")
            .to("seda:printQueue");
最后,seda:printQueue没有消费者,通过这样的路径发送消息显然效果很好。现在我想在初始化路由后引入一个新的消费者,我认为可以通过编程创建一个Springbean,让Camel使用
@Consume(uri=“seda:printQueue”)
注释拾取bean,但一旦我创建了消费者Camel,它就会抱怨

org.apache.camel.RuntimeCamelException: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named '4965d710-b5c7-41cf-97e9-a42bdfcea894' is defined]
有什么想法吗

[更新]


我已经将错误追溯到创建这个新使用者的类,我正在实例化
PrintQueue
类,然后使用
AutowireCapableBeanFactory
执行
factory.autowireBean(printQueueInstance)
后接
factory.initializeBean将其集成到Spring上下文中(printQueueInstance,id)
其中
id
是出现在上述异常中的
4965d710-b5c7-41cf-97e9-a42bdfcea894
,因此我认为这一定是某种上下文范围问题,可能是我在主上下文或WebSpring上下文中创建此bean,而骆驼上下文无法访问它,这可能吗?

因为此路由是在通过使用“direct:”组件进行同步,它似乎不需要“seda:”来异步调用另一个bean。在这种情况下,对于Java DSL,使用Camel的bean方法调用bean似乎是最简单的。如Camel bean文档中所示:

我只想:

// Send message to the bean endpoint
// and invoke given method.
from("direct:start")
  // do other stuff in your route
   .beanRef("beanName", "methodName");

您是如何创建
@Consume
-ing bean的?它是否会进入注册表?是否有任何理由在运行时创建它而不是预先配置它?