Avatar billede elprebsi Praktikant
17. oktober 2014 - 08:46 Der er 5 kommentarer og
1 løsning

Hvordan kan jeg bruge MQ som backend i en REST service

Hej eksperter

Jeg har behov for at udstile en service med et REST interface, hvor jeg skal hente data fra en WebSphere MQ backend service.

Min udfordring er umiddelbart, at jeg ikke ved hvordan jeg skal få min REST service til at gå i "dvale", indtil jeg får svar på mit MQ kald.

Derudover kunne jeg også godt bruge et tip til, hvordan jeg matcher det indkommende MQ svar (JMS) men én af de tråde, jeg har liggende i dvale.

Patterns, frameworks, idéer - alt er velkomment.

Hilsen
El Prebsi
Avatar billede arne_v Ekspert
17. oktober 2014 - 15:20 #1
Den magiske google term er:

JAX-RS 2.0 asynchronous

:-)

F.eks.:

https://jersey.java.net/documentation/latest/async.html

Enten kan du have en ventende traad (lidt grimt) eller saa kan du bare sende AsyncResponse med over til det som modtager svar fra backend (lidt mere tricky, men det rigtige).
Avatar billede elprebsi Praktikant
20. oktober 2014 - 08:47 #2
Hej Arne.

Tak for tippet. Det bringer mig et rigtig godt stykke af vejen. Jeg mangler lige at regne ud, om jeg er helt dækket ind, når jeg kører i et setup med flere strenge. Men pt. regner jeg med at løse den del med eksplicitte retur-kø navne, som kun bliver læst af den enkelte server.

Fortsæt dit gode arbejde herind.

Hilsen
Preben
Avatar billede elprebsi Praktikant
20. oktober 2014 - 08:48 #3
Læg et svar, så sender jeg velfortjente point i din retning.
Avatar billede arne_v Ekspert
21. oktober 2014 - 02:13 #4
svar
Avatar billede arne_v Ekspert
21. oktober 2014 - 02:17 #5
Der maa jo vaere en eller anden maade at identificere de svar paa - en form for "id".

Hvis JAX-RS service:
- gemmer key=id fra request pog value=context i en Map
- sender til mq

En MDB som:
- receiver fra mq
- bruger id i response til at hente context
- bruger context til at sende svar til browser
Avatar billede arne_v Ekspert
21. oktober 2014 - 02:18 #6
Alternativt kunne du lave 2 JAX-RS services:
- en synkron som modtager request, sender til mq og returnerer status
- en synkron som poller om svar er modtaget
og saa lade client side polle.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester