【发布时间】:2023-01-17 19:40:21
【问题描述】:
我们的系统配置为使用和发送回复到同一个队列,即JMSDestination和JMSReplyTo是相同的。我现在无法更改。
在我的集成测试中,如果我设置replyToSameDestinationAllowed=true,Camel 将继续使用我发送到队列的回复,即它“捕获”源并且永不停止并进入循环。
但是,如果我不设置它,Camel 会拒绝将回复发送到队列,并表示:
JMSDestination 和 JMSReplyTo 相同,将跳过向自身发送回复消息
这导致我的集成测试出现问题。我想在一个单独的方法中使用消息并对它进行断言。
我怎样才能阻止 Camel 捕获这个队列,即只消耗一次而忽略其余的?
在路线的尽头,我拨打
stop()自动发送回复。当收到第二条消息(回复)时,我看到这一行:
2023-01-10 14:37:22,186 DEBUG [org.apa.cam.com.jms.EndpointMessageListener]-{Camel (camel-1) thread #19 - JmsConsumer[my.queue]}-收到的消息有 JMSCorrelationID [ID :hostname-1673354133272-4:1:1:10:1]
我可以用它来忽略回复吗?我应该停止路线吗?回滚?或者我该怎么办?
【问题讨论】:
标签: java apache-camel