使用spring集成从wmq获取JMS目标

时间:2018-05-18 16:30:14

标签: java spring-integration ibm-mq

我使用消息驱动的通道适配器(Spring Integration)消耗来自IBM Mq的消息。消息中的JMS Destination属性为null。有人可以告诉我如何在标题中获取使用wmq消耗的消息的队列名称 JMS Destination属性用于从apache Active mq消耗的消息,但不用于IBM MQ。

1 个答案:

答案 0 :(得分:0)

DefaultJmsHeaderMapper的代码如下:

 try {
        Destination destination = jmsMessage.getJMSDestination();
        if (destination != null) {
            headers.put(JmsHeaders.DESTINATION, destination);
        }
    }
    catch (Exception ex) {
        this.logger.info("failed to read JMSDestination property, skipping", ex);
    }

因此,如果IBM Mq没有提供该属性值,我们真的不会在此问题上有JmsHeaders.DESTINATION标题。

我建议你调查消费后得到的所有标题,看看你的目的地是什么。

否则,您始终可以扩展DefaultJmsHeaderMapper并在重写的toHeaders()方法中实现您自己的逻辑。