【问题标题】:How to receive MQMessage using JmsListener如何使用 JmsListener 接收 MQMessage
【发布时间】:2021-10-14 15:32:46
【问题描述】:

我正在将我的应用程序从常规 java 应用程序升级到 Spring boot 应用程序。

我正在使用 IBM MQ 连接外部应用程序。

在旧版本中,我得到了一个MQMessage 对象并且只使用了反馈字段。像这样:

MQQueue currQ = this.qMgr.accessQueue("myQueue",MQC.MQOO_INQUIRE + MQC.MQOO_INPUT_SHARED + MQC.MQOO_FAIL_IF_QUIESCING);

MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = MQC.MQGMO_SYNCPOINT;      
MQMessage mqMsg = new MQMessage();
currQ.get(mqMsg, gmo);
System.out.println("feedback: " + mqMsg.feedback);

在我的新代码中,我使用的是JmsListener

@JmsListener(destination = "myQueue", containerFactory = "jmsListenerContainerFactory")
public void myQueueListener(String message) {
    System.out.println("feedback: " + ???);
}

我如何获得反馈字段?

我无法控制发送消息的外部应用程序。

【问题讨论】:

    标签: jms ibm-mq


    【解决方案1】:

    JMS fields and properties with corresponding MQMD fields 章节解释了标头映射。您有两个选项来访问标题(另请参阅this answer),这是其中之一:

    @JmsListener(destination = "myQueue", containerFactory = "jmsListenerContainerFactory")
    public void myQueueListener(String message, @Header("JMS_IBM_Feedback") Integer feedback) {
        System.out.println("feedback: " + feedback);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 2022-11-05
      • 2016-07-02
      • 2017-07-29
      • 1970-01-01
      相关资源
      最近更新 更多