Hi all, I'm new to Axis and I'm stuck with problem. I need to add asynchronous communication logic to an existing services, so the services could communicate in sync as it know and async modes. I checked articles on the net and axis proposal to async comm in CVS but I don't think it fits to my requirements. I need to keep interop with .NET clients so JMS is out and I don't really want to change a service's schema.
So here are my thoughts: My service has one operation with IN and OUT : public ConmplextType opreation(ComplexType in) . I can: 1) implement a handler where I can intercept request to the service in : Hanler.handleRequest(). In this method I will: 1.1) Check SOAP header to find out if client wants to use async comm. 1.2) Deserialize a message by myself . 1.3) Look-up target service and invoke it using aynch method. I can force service to implement my interface , so I will know which method to invoke for async comm. 1.4) return false from Hanler.handleRequest(). I believe I have all necessary information in org.apache.axis.MessageContext to do it. 3) set a null as an output from service operation. Add correlation id to the header of the response. 4) Next time when client comes with correlation id in header of the request I can check if service processing is done and return response by serializing it in handleResponse() method. My problem is on steps 1.2 and 1.3. It looks like I need to re-implement the following: - org.apache.axis.providers.java.JavaProvider.invoke(MessageContext) - org.apache.axis.providers.java.RPCProvider.processMessage(MessageContext, SOAPEnvelope, SOAPEnvelope , Object) . Is there a more proper ways of doing it ? Does axis allow me to intercept serialize/serialize processes somehow ? Thanks. Timour