gpt4 book ai didi

java - 如何在没有 Jms session 对象的情况下复制 javax.jms.TextMessage

转载 作者:行者123 更新时间:2023-11-30 10:34:07 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com