java - 尝试从 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() : "";
解决方案
要接收消息,您需要在执行 receive.receive(10000) 之前发出 connection.start() -</p>
推荐阅读
- azure - 添加新集合时对 Azure Cosmos DB 模拟器的高需求
- mysql - 根据另外两个表(MySQL)更新列值
- r - 对列中的一组相似值进行分组
- php - 无法在php中获取两个日期之间的日期差
- php - 教义:查询数组类型
- javascript - 计算提示答案时遇到问题
- c# - .NET Core (2.1) Web API 控制器接受请求 url 中的所有内容作为参数
- entity-framework - 实体框架对本地数据执行原始 SQL
- android - 如何仅删除 Facebook 登录按钮上的 Facebook 徽标
- linux - Monit无法启动进程:(退出状态0)--无输出