Запрос-ответ Mule JMS

#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. Опубликовал решение, которое я использовал выше, спасибо