Hello, I am trying to design a webservice that will respond asynchronously and to a specific URL. I have read documentation on asynchronous services [1] but I have not found a solution for the following situation: 1. A client sends a soap request to the webservice 2. The webservice does some validation of the input (by actually calling another webservice) 3. If the validation succeds, the webservice responds with an xml that indicates that the operation is pending. 3.1 The webservice does some work that takes a while (>1min) 3.2 The webservice responds (succesfully or with a fault) to an URL specified by the client 3.3 End 4. If the validation failed, the webservice responds with an xml that indicates that there is a problem
So I think this situation is weird since there is an initial acknowledge to the client (with data) and then the response is delivered somewhere else. I have managed to use the addressing module to specify the URL for the final response options.setReplyTo(new EndpointReference( "http://10.21.17.196:8888/pruebaservlet/pepe")); However, when I call the service, I do not how to send or receive the acknowledge. I monitored the http communication and the client sends correctly the soap request and the service responds with a 200 OK code but no content. So this is my question: Is it possible to implement this scenario, i.e. an ack that indicates if the operation will or will not be performed, then the response is sent somewhere else. Some other doubts: What would be the "ideal" way to handle this response? With a simple servlet? Or perhaps an in-only webservice whose in-parameter is the output-parameter of the initial webservice. (I hope I am making some sense with these questions) Thank you [1] http://www.onjava.com/pub/a/onjava/2005/07/27/axis2.html?page=4 http://www.ibm.com/developerworks/webservices/library/ws-axis2/ http://today.java.net/pub/a/today/2006/12/13/invoking-web-services-using- apache-axis2.html -- David Ojeda