nicolas de loof wrote:
Hello,
I have a requirement to setup a WS client to do some asynchronous call,
based on ws-addressing : the idea is to set the "replyTo" wsa property so
that the client just send the request and just wait for the HTTP 202
(accepted), and not for the entire response that will come far latter.
I've tested the CXF ws-addressing example, and configured it for
asynchronous code generation - this works fine, but I'm not convinced my
client waited for the HTTP 202 transport-level reponse, and have no idea how
I could check this.
One way to test it would be to inject a sleep into the server-side
dispatch of the partial respones (i.e. the 202).
You could do this by implementing a very simple interceptor that did
nothing expect sleep for say 10 seconds. Add this interceptor to the out
chain on the server side. Then it would be immediately apparent whether
the client runtime is blocking until the 202 arrives.
Alternatively run the server under the control of a debugger, and place
a break point in
org.apache.cxf.ws.addresssing.ContextUtils.rebaseResponse(). If you
delay before resuming execution, again it should be apparent whether the
client runtime is waiting for the 202.
BTW if your server is running standalone, for example the ws_addressing
demo server launched from ant, its easy to attach to this JVM from
Eclipse in order to debug. Just add something like the following
properties to the server launch:
-Xdebug -Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
/Eoghan
Could someone confirm this, and give me an idea how to implement this
half-asynchronous scenario :
client
| ------------------------> Request <wsa:replyTo="X">
| Server
| <------------- HTTP 202 accepted ---------------- |
|
does some other work (asynchronously) | process...
|
| <------------- Response ------------------------- |
AsyncHandler<Response>
| ------------- HTTP 200 -------------------------> |
Cheers,
Nicolas
----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland