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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta