#jms #mule
#jms #mule
Вопрос:
У меня есть поток Mule, который использует входящую конечную точку JMS — конечной точкой является ответ на запрос — когда я запускаю тест, отправляющий ObjectMessage, запрос попадает на последующие преобразователи, и я вижу ответ в конце цикла обработки.
Однако возникает проблема, когда я отправляю запрос JMS в очередь от внешнего Java-клиента — сообщение JMS отправляется, однако полезная нагрузка ответа всегда равна нулю — я включаю фрагмент кода ниже моего сценария
Спасибо
Решена проблема с использованием следующего активного тестового класса MQ.
connectionFactory = new ActiveMQConnectionFactory(connectionUri);
connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
replyQueue = session.createQueue("REPLY.Q");
requestQueue = session.createQueue("REQUEST.Q");
messageConsumer = session.createConsumer(replyQueue);
messageConsumer.setMessageListener(this);
connection.start();
ObjectMessage message = session.createObjectMessage();
message.setObject(getCompositeEntity());
message.setJMSReplyTo(replyQueue);
String randomStr = UUID.randomUUID().toString();
message.setJMSCorrelationID(randomStr);
MessageProducer publisher = session.createProducer(requestQueue);
publisher.send(message);
Ответ №1:
Правильно ли установлено свойство JMS-сообщения, которое вы публикуете от внешнего клиента JMSReplyTo
, в очередь (постоянную или временную)?
Комментарии:
1. Да, это так — вот почему я немного удивлен, что внешний клиент не получает ответное сообщение обратно
2. Я думаю, что я решил свою проблему, и, похоже, она работает, спасибо за быстрый ответ. Также отличная книга по Mule, многому из нее научился.
3. Спасибо, но в чем была проблема?
4. Опубликовал решение, которое я использовал выше, спасибо