【问题标题】:Camel route - get JMSMessageId after sent骆驼路线 - 发送后获取 JMSMessageId
【发布时间】:2017-08-04 17:48:43
【问题描述】:

如何在骆驼路线生产者中获取 JMSMessageID(使用 Spring 上下文), JMSMessageID 需要由 MQ 服务器生成,就像它与原生 JMS 一样。

camel's documentation JMSMessageID 在“消费者”部分, "Camel 在收到 JMS 消息时将以下 JMS 属性添加到 In 消息头", 但我需要在发送后从生产者那里获得它。

我可以将 tmpReply 队列与骆驼的 InOut 一起使用。

我想,我需要使用MessagePostProcessor,或MessageSentCallback,但我不知道如何。

非常感谢!

【问题讨论】:

  • JMS 客户端发送消息后,JMSMessageID 由 Camel 自动设置,因此您将其作为 Camel 消息实例上的 messageId
  • 应该是,但是in.header、in.body和out都是空的。可能是我设置错误?骆驼版本是2.18.1
  • 您使用什么 JMS 客户端/代理?可能是发送的时候没有提供message id。
  • 我使用:springframework 4.3、spring-context、camel-core、camel-spring
  • 我想是 org.apache.camel.component.jms

标签: java apache-camel jms spring-jms


【解决方案1】:

这对我有用:

from("someRoute")
    .to("jms://OUTPUT.QUEUE?includeSentJMSMessageID")
    .log("JMSMessageID = ${header.JMSMessageID}");

【讨论】:

    猜你喜欢
    • 2020-09-17
    • 2018-09-05
    • 2013-12-04
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    相关资源
    最近更新 更多