2017-01-24 11 views
0

Я слушаю MQ Q с использованием аннотации Spring JMS @JmsListener.Как дублировать javax.jms.TextMessage без объекта сеанса Jms

@JmsListener(destination = "${qNmae}", 
        containerFactory = "jmsListenerContainerFactory2") 
    public void processMessage(Message<String> msg) throws JMSException { 

    } 

Мне нужно преобразовать объект Spring Message в новый JMS TextMessage. Я знаю, что я могу поместить параметр метода типа TextMessage вместо Message, а Spring автоматически преобразует его, но затем я получаю неизменяемый объект, но мой код требует, чтобы я сохранял существующие заголовки и добавлял новые заголовки в определенных случаях. В основном я ищу подходящий способ дублирования объекта JMS Message/TextMessage, чтобы я мог добавлять свои собственные заголовки без объектов JMS Session (поскольку я использую @JmsListener, я не хочу самостоятельно создавать новые сеансы для создания нового сообщения).

+0

нет метода клонов в реализации сообщения/TextMessage в ibm? –

+0

Это первое, что пришло мне в голову, но когда я проверил, нет. – user3817206

+0

Что ты собираешься делать с клонированным сообщением? –

ответ

0

В этом случае вы можете создать новый экземпляр заголовков сообщений и копий или добавить сеанс в качестве параметра в свой метод processMessage, а весна будет вводить сеанс, который вы можете использовать для создания нового сообщения (зависит от реализации, но i думаю, сессия только создаст новый экземпляр, такой как первое предложение) и заголовки копий