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

Reply via email to