【发布时间】:2019-10-24 02:17:05
【问题描述】:
我正在使用 Spring JMS @JmsListener 注解收听 MQ Q。
@JmsListener(destination = "${qNmae}",
containerFactory = "jmsListenerContainerFactory2")
public void processMessage(Message<String> msg) throws JMSException {
}
我需要将 Spring Message 对象转换为 New JMS TextMessage。我知道我可以放置 TextMessage 类型的方法参数而不是 Message 并且 Spring 会自动转换它,但是我得到了不可变的对象,但是我的代码要求我保留现有的标头并在某些情况下添加新的标头。 基本上我正在寻找复制 JMS Message/TextMessage 对象的正确方法,这样我就可以在没有 JMS Session 对象的情况下添加自己的标题(因为我正在使用@JmsListener,我不想自己创建新会话只是为了创建新消息)。
【问题讨论】:
-
ibm Message/TextMessage 实现中没有克隆方法?
-
这是我想到的第一件事,但是当我检查时没有
-
你打算如何处理克隆的消息?
-
我必须对消息的有效负载执行一些业务逻辑,如果出现错误/失败,我需要将该信息添加到标头中(我还需要保留原始标头)并发送它到另一个Q
标签: java jms ibm-mq spring-jms jms-session