首页 > 解决方案 > 尝试从 MQ 读取消息时始终收到空消息

问题描述

我尝试从 MQ 接收消息。我可以在 MQ Explorer 中看到消息。但我无法收到消息。它总是返回 null。但我可以将消息放到队列中。

代码在这里。

 MQQueueConnectionFactory cf = new MQQueueConnectionFactory();
    cf.setHostName("localhost");
    cf.setPort(1415);

    cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);

    cf.setQueueManager("TEST");
    cf.setChannel("TEST.CHANNEL");


    MQQueueConnection connection = (MQQueueConnection)cf.createQueueConnection("mqusr","q@789945");

    MQQueueSession session = (MQQueueSession) connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    MQQueue replyQueue = (MQQueue) session.createQueue("queue:///TEST.REPLY.QUEUE");
    MQQueueReceiver receiver = (MQQueueReceiver) session.createReceiver(replyQueue);

    TextMessage receivedMessage = (TextMessage) receiver.receive(10000);
   String reponseMessage = receivedMessage != null ? receivedMessage.toString() : "";

标签: javajmsibm-mq

解决方案


要接收消息,您需要在执行 receive.receive(10000) 之前发出 connection.start() -</p>


推荐阅读