Ниже приведен псевдокод потока, который использует очередь для отправки сообщения, а затем синхронно прослушивает тему. Основным поставщиком 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 секунд.
Есть идеи, что мне здесь не хватает?