Cómo hacer una solicitud JMS síncrona
Tengo una aplicación web que se espera que obtenga y muestre datos desde una aplicación externa a la que solo se puede acceder a través de mensajes (JMS).
Por lo tanto, si un usuario envía una solicitud en un navegador, el mismo subproceso de solicitud HTTP tendrá que interactuar con el sistema de mensajería (Serie MQ) de manera que el mismo subproceso de solicitud pueda mostrar los datos recibidos del sistema de mensajería.
¿Hay algún patrón que pueda usar aquí? Vi algunas referencias vagas en la red que usan "ID de correlación" de esta manera:
Msg m = new TextMsg("findDataXYZ");
String cr_id = m.setCorrelationID(id);
sendQueue.send(m).
// now start listening to the Queue for a msg that bears that specific cr_id
Response r = receiverQueue.receive(cr_id);
¿Hay algo mejor por ahí? Los otros patrones que encontré esperan que la respuesta se reciba de forma asíncrona ... lo cual no es una opción para mí, ya que tengo que enviar la respuesta de vuelta en la misma solicitud HTTP.