我正在尝试将消息侦听器连接到MQ。
Queue primaryQueue = session.createQueue("Q1");
MessageConsumer primaryConsumer = session.createConsumer(primaryQueue);
primaryConsumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
ObjectMessage objectMessage = (ObjectMessage) message;
try {
Payload payload = (Payload) objectMessage.getObject();
System.out.println("Payload\n" + payload);
} catch (JMSException e) {
e.printStackTrace();
}
}
});
这只是一个连接到队列的简单控制台应用程序。但是,在我启动应用程序并附加监听器之后,它会读取当前的消息集并且只是...停止。如果我在几秒钟之后将另一条消息发送到队列中,则监听器甚至没有准备好接收它。我正在使用我在本地运行的Websphere MQ。
我有点期待应用程序喜欢挂起并等待再次被触发?连接一个监听器的关键在于它可以对传入的消息做出反应,而不是在物理上对它进行recieve()
。
我是消息和队列的新手,所以我想我错过了一些明显的东西。感谢帮助。