我有下面的流伪代码,它使用队列发送消息,然后同步收听主题。底层 JMS 提供程序是 Tibco EMS。
//Send to Queue
Connection connection = createConnection(); // get the JMS connection
Session session = connection.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("sample.queue");
MessageProducer messageProducer = session.createProducer(queue);
Message message = createMessage(); //create JMS message
messageProducer.send(message);
现在,我使用创建的同一个对象收听一个主题session
,然后等到有响应。
Topic topic = session.createTopic("sample.topic");
MessageConsumer messageConsumer = session.createConsumer(topic);
//wait for the reply.
Message responseMessage = messageConsumer.receive(60000);
if(responseMessage != null) {
System.out.println("Message received..");
}
我面临的问题是消息对象显示为空。我使用 jms 监控工具进行了测试,主题确实有一些消息,但上面的代码即使在 60 秒后也无法接收到它。
知道我在这里想念什么吗?