Jak utworzyć żądanie synchroniczne JMS

Mam aplikację internetową, która ma pobierać i wyświetlać dane z zewnętrznej aplikacji, która jest dostępna tylko za pośrednictwem wiadomości (JMS).

Jeśli więc użytkownik prześle żądanie w przeglądarce, ten sam wątek żądania HTTP będzie musiał współdziałać z systemem przesyłania wiadomości (seria MQ), tak że ten sam wątek żądania może wyświetlać dane otrzymane z systemu przesyłania wiadomości.

Czy jest jakiś wzór, z którego mogę tutaj skorzystać? Widziałem w sieci pewne niejasne odniesienia, które używają w ten sposób „Identyfikatora korelacji”:

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);

Czy jest tam coś lepszego? Inne wzorce, które znalazłem, oczekują asynchronicznej odpowiedzi, co nie jest dla mnie opcją, ponieważ muszę wysłać odpowiedź z powrotem na to samo żądanie HTTP.

questionAnswers(2)

yourAnswerToTheQuestion