我试图使用@EndpointInject批注以创建一个ProducerTemplate来将我的POJO桥接到CamelContext(如此处http://camel.apache.org/pojo-producing.html所述)。
我遇到的问题是在启动骆驼上下文中的所有路由之前,将ProducerTemplate注入到我的POJO中。因此,当我调用producerTemplate.send(...)时,出现了DirectConsumerNotAvailableException: No consumers available on endpoint...
错误。
为了确保在尝试发送到路由之前启动CamelContext,我需要做些什么吗?
最佳答案
您可以在直接端点上将block=true
用作选项,它将等待使用者使用并运行。这应该有所帮助。
http://camel.apache.org/direct
否则,您需要自己编写一些代码以等待CamelContext
处于启动状态。您可以从具有ProducerTemplate
的注入的getCamelContext
中访问它。
另一种选择是拥有依赖项注入框架,如果可能的话,在Camel之后设置您的bean。如果您使用的是spring xml,则它具有您可以在depends-on
标记上设置的<bean>
属性。