[ 
http://issues.apache.org/jira/browse/AXIS2-1061?page=comments#action_12429967 ] 
            
Eran Chinthaka commented on AXIS2-1061:
---------------------------------------

Few comments. 

1. You can not use the same instance of the callback objects to two successive 
invocations. Callback should be there until a particular thread finishes. 
2. Make sure your payload is build, before doing mutliple invocations using the 
*same* payload. I'd rather clone it.

This is how I got this work. (thx Deepal for giving me the initial code for 
this)

OMElement payload = creatPayLoad_echo();
        Options options = new Options();
        options.setAction("urn:echo");
        options.setTo(new 
EndpointReference("http://localhost:8000/axis2/services/EchoService";));

        Callback callback = new Callback() {
            public void onComplete(AsyncResult result) {
                SOAPEnvelope env =
result.getResponseMessageContext().getEnvelope();
                System.out.println("env = " + env);
                finish = true;
            }

            public void onError(Exception e) {
                System.out.println("e = " + e);
                finish = true;
            }
        };

        ServiceClient sender = new ServiceClient();
        sender.setOptions(options);
        sender.sendReceiveNonBlocking(payload, callback);


        Callback callback2 = new Callback() {
            public void onComplete(AsyncResult result) {
                SOAPEnvelope env =
result.getResponseMessageContext().getEnvelope();
                System.out.println("env = " + env);
                finish = true;
            }

            public void onError(Exception e) {
                System.out.println("e = " + e);
                finish = true;
            }
        };
        sender.sendReceiveNonBlocking(payload.cloneOMElement(), callback2);

         while (!callback2.isComplete() || !callback.isComplete()) {

        }


        System.out.println("Done !!");

OUTPUT
=======

env = <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";><soapenv:Header 
/><soapenv:Body><ns:echoResponse 
xmlns:ns="http://ws.apache.org/axis2/xsd";><ns:return>Hello</ns:return></ns:echoResponse></soapenv:Body></soapenv:Envelope>
env = <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";><soapenv:Header 
/><soapenv:Body><ns:echoResponse 
xmlns:ns="http://ws.apache.org/axis2/xsd";><ns:return>Hello</ns:return></ns:echoResponse></soapenv:Body></soapenv:Envelope>
Done !!


> sendReceiveNonBlocking fails to send multiple (identical) requests
> ------------------------------------------------------------------
>
>                 Key: AXIS2-1061
>                 URL: http://issues.apache.org/jira/browse/AXIS2-1061
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: client-api
>         Environment: Windows XP sp2, jdk 1.5.03, mac os X 10.4.7, jdk 1.5_06, 
> axis2 17/08/06
>            Reporter: Michele Mazzucco
>            Priority: Critical
>
> The call sendReceiveNonBlocking call fails when multiple, identical messages 
> are sent. More in detail, the first send succeeds, but the second fails 
> because the message is sent with an empty SOAP body. A workaround is to 
> interleave two consecutive send operations by (at least) 600 ms (on my 
> system).
> In other words:
> for (int i = 0; i < execution.requestNum; i++) {
>       OMElement payload = getTestOMElement();
>       sender.sendReceiveNonBlocking(payload, callback);
> }
> succeeds, while:
> OMElement payload payload = getTestOMElement();
> for (int i = 0; i < execution.requestNum; i++) {
>       sender.sendReceiveNonBlocking(payload, callback);
> }
> fails, because (from the second send) the SOAP message is empty

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to