我正在使用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,我不想要我自己创建新会话只是为了创建新消息。)
答案 0 :(得分:1)
在这种情况下,您可以创建Message的新实例并复制标头或将会话作为参数添加到方法processMessage中,spring将注入可用于创建新Message的会话(取决于实现,但我认为会话将只创建一个新实例,如第一个提案)和复制标题