作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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 会自动转换它但随后我得到不可变对象(immutable对象)但我的代码要求我保留现有 header 并在某些情况下添加新 header 。基本上我正在寻找复制 JMS Message/TextMessage 对象的正确方法,以便我可以在没有 JMS Session 对象的情况下添加自己的 header (因为我正在使用@JmsListener,我不想自己创建新 session 只是为了创建新消息)。
最佳答案
在这种情况下,您可以创建消息的新实例并复制 header 或将 session 作为参数添加到您的方法 processMessage 中,spring 将注入(inject)可用于创建新消息的 session (取决于实现,但我认为session 只会像第一个提案一样创建一个新实例)并复制标题
关于java - 如何在没有 Jms session 对象的情况下复制 javax.jms.TextMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41832112/
我是一名优秀的程序员,十分优秀!