开发者社区> 问答> 正文

消费来自MQ的消息

我正在尝试使用来自MQ的消息,但是代码挂起并且不显示输出。

JmsFactoryFactory FF = jmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
JmsConnectionFactory cf = FF.createConnectionFactory();
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, HOST);
cf.setStringProperty(WMQConstants.WMQ_PORT, PORT);
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, CHANNEL);
cf.setStringProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, QMGR);
cf.setStringProperty(WMQConstants.WMQ_APPLICATIONNAME, "JMS");
Connection connection = cf.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue(queuename);
MessageConsumer consumer1 = session.createConsumer(destination);

Message reply = consumer1.receive();
System.out.println(reply);

它不显示消息并挂起,甚至不终止。

问题来源:Stack Overflow

展开
收起
montos 2020-03-26 19:31:13 451 0
1 条回答
写回答
取消 提交回答
  • 您需要调用start()的实例,javax.jms.Connection以使消息流向使用者,例如:

    connection.start()
    

    另外,值得注意的是,javax.jms.MessageConsumer#receive()在收到消息之前,呼叫将被阻塞,因此您会在此处看到预期的行为。如果您不想阻止,则可以调用javax.jms.MessageConsumer#receive(long)并指定超时(以毫秒为单位)。

    回复来源:Stack Overflow

    2020-03-26 19:32:18
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Rocket MQ 使用排查指南 立即下载
消息队列kafka介绍 立即下载
消息队列 Kafka 版差异化特性 立即下载