Hi,

I build my web services using Axis2 + XmlBeans (XML Data binding).
I used the "Code first approach" (Starting from a service source code) + 
Java2WSDL, using Axis2 Codegen Wizard (eclipse plugins)
Everything is working fine.
I'm thinking now to control the client call operations (Sync vs. Async).
Looking at the automatic generated stub class, I'm not sure which operations 
the stub is implementing.
I observed the following calls to the server.

org.apache.axis2.client.OperationClient calls execute(true).

How can I change this into non-blocking with callbacks?

Thanks,
wen

Below is the code snippet:

    public TDTradeServicesResultDocument processTrade(MyXmlDocument param0)
            throws java.rmi.RemoteException, 
org.tds.eqd.webServices.exception.ProcessTradeFaultException{
        try{
            org.apache.axis2.client.OperationClient _operationClient = 
                    _serviceClient.createClient(_operations[0].getName());
            _operationClient.getOptions().setAction("urn:processTrade");
            
_operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
            // create SOAP envelope with that payload
            org.apache.axiom.soap.SOAPEnvelope env = null;
            //Style is Doc.
            env = toEnvelope(
                    getFactory(
                        _operationClient.getOptions().getSoapVersionURI()),
                        param0,
                        optimizeContent(new 
javax.xml.namespace.QName("","processTrade")
                    )
            );
    
            // adding SOAP headers
            _serviceClient.addHeadersToEnvelope(env);
            // create message context with that soap envelope
            org.apache.axis2.context.MessageContext _messageContext =
                    new org.apache.axis2.context.MessageContext() ;
            _messageContext.setEnvelope(env);

            // add the message contxt to the operation client
            _operationClient.addMessageContext(_messageContext);

            //execute the operation client
            _operationClient.execute(true);

            org.apache.axis2.context.MessageContext _returnMessageContext = 
                    _operationClient.getMessageContext(
                    org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE);
            org.apache.axiom.soap.SOAPEnvelope _returnEnv = 
_returnMessageContext.getEnvelope();
        
            java.lang.Object object = fromOM(
                    _returnEnv.getBody().getFirstElement(),
                    TDTradeServicesResultDocument.class,
                    getEnvelopeNamespaces(_returnEnv)
            );
            
_messageContext.getTransportOut().getSender().cleanup(_messageContext);

            return (TDTradeServicesResultDocument)object;
        } catch(org.apache.axis2.AxisFault f){


                
---------------------------------
Share your photos with the people who matter at Yahoo! Canada Photos

Reply via email to