我试图使用@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>属性。

10-05 23:29