gpt4 book ai didi

java - Camel 路由无法按预期工作

转载 作者:行者123 更新时间:2023-11-30 11:05:31 25 4
gpt4 key购买 nike

我尝试在一个兔子队列和另一个兔子队列之间创建一条非常简单的路线。消息应该从一个队列到第二个队列不进行任何处理。但由于未知原因,消息一次又一次地重定向到第一个队列,而不是转到第二个队列。

@Component
public class CamelRouter extends SpringRouteBuilder {
@Override
public void configure() {
from("rabbitmq://localhost/test-in?autoAck=false&autoDelete=false&durable=true&exchangeType=fanout&queue=test-in&username=guest&password=xxx")
.log(LoggingLevel.ERROR, "Output of message from Queue: ${in.body}")
.to("rabbitmq://localhost/test-out?autoAck=false&autoDelete=false&durable=true&exchangeType=fanout&queue=test-out&username=guest&password=xxx");
}
}

日志如下:

09:04:18.564 [thread] WARN  route1                                     - Output of message from Queue: test
09:04:18.700 [thread] WARN route1 - Output of message from Queue: test
09:04:18.835 [thread] WARN route1 - Output of message from Queue: test
09:04:18.968 [thread] WARN route1 - Output of message from Queue: test
09:04:19.104 [thread] WARN route1 - Output of message from Queue: test
09:04:19.238 [thread] WARN route1 - Output of message from Queue: test

这个 Camel 配置有什么问题?在我看来,它越简单越好。

最佳答案

与其删除 header ,不如在交换中使用 out 消息,如下所示。在这个特定示例中,rabbitmq 前缀可能没问题,但是如果您尝试将此方法用于其他组件(imap 是一个很好的示例),由于各种奇怪的原因,它不会起作用。

    from("rabbitmq://localhost/test-in?autoAck=false&autoDelete=false&durable=true&exchangeType=fanout&queue=test-in&username=guest&password=xxx")
.log(LoggingLevel.ERROR, "Output of message from Queue: ${in.body}")
.process(new Processor() {

@Override
public void process(Exchange exchange) throws Exception {
exchange.getOut().setBody(exchange.getIn().getBody());
}
})
.to("rabbitmq://localhost/test-out?autoAck=false&autoDelete=false&durable=true&exchangeType=fanout&queue=test-out&username=guest&password=xxx");

关于java - Camel 路由无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29626927/

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