gpt4 book ai didi

spring - 如何确保 Camel 的 ProducerTemplate 等待 CamelContext 启动

转载 作者:行者123 更新时间:2023-12-01 00:52:45 36 4
gpt4 key购买 nike

我正在尝试使用 @EndpointInject 注释来创建一个 ProducerTemplate 来将我的 POJO 连接到 CamelContext(如此处所述 http://camel.apache.org/pojo-producing.html )。

我遇到的问题是 ProducerTemplate 在 Camel 上下文中的所有路由启动之前被注入(inject)到我的 POJO 中。所以当我调用 producerTemplate.send(...) 时,我得到一个 DirectConsumerNotAvailableException: No consumers available on endpoint...错误。

为了确保在尝试发送到路由之前启动 CamelContext ,我需要做些什么吗?

最佳答案

您可以使用 block=true作为直接端点上的一个选项,它将等到消费者处于事件状态并运行。这应该会有所帮助。

  • http://camel.apache.org/direct

  • 否则你需要自己写一些代码来等到 CamelContext处于启动状态。您可以从注入(inject)的 ProducerTemplate 访问它其中有一个 getCamelContext .

    另一种选择是使用依赖注入(inject)框架,如果可能的话,在 Camel 之后设置你的 bean。如果您使用的是 spring xml,那么它有 depends-on您可以在 <bean> 上设置的属性标签。

    关于spring - 如何确保 Camel 的 ProducerTemplate 等待 CamelContext 启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30109779/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com