Title: [Axis2] Sender=null trying to use version 0.95-SNAPSHOT
Hi developers,
 
I've got no answers on this on axis-user, so I'm trying the dev-list.
 
Using a SNAPSHOT of 0.95 I got the sender object = null as described a few days ago. As far as I can see, I coded the client right. Is this a bug in the code or do you have test clients that are able to send the SOAP-message using generated stub and configuration with Options like I do? If it is a bug, please tell me so I can file it in Jira.
 

Best regards / vennlig hilsen
Tore Larsen
Senior Software Engineer
Comptel Communication AS

e-mail        :  [EMAIL PROTECTED]

 

Original message below:

Hei,

I have tried to use generated stub from my client class:

<client-snip>
 /* Create the client stub for service invokation */
            DLExternalInformationStub stub = new DLExternalInformationStub(null, endpointServiceURL);

            /* get serviceClient */
            ServiceClient serviceClient = stub._getServiceClient();
           
            /* set client options */
            Options clientOptions = new Options();
            clientOptions.setTimeOutInMilliSeconds(connectionTimeout);
            clientOptions.setTranportOut(new TransportOutDescription(new QName(Constants.TRANSPORT_HTTP)));
            clientOptions.setTransportIn(new TransportInDescription(new QName(Constants.TRANSPORT_HTTP)));
            clientOptions.setUseSeparateListener(false);       
            serviceClient.setOptions(clientOptions);
            stub._setServiceClient(serviceClient);

            /* Service invocation */
            QueryExternalInformationResponseDocument responseDoc = stub.queryExternalInformation(requestDoc);
</client-snip>

I receive 'null' in response and the soap-message never leaves my client side implementation. I have debugged it and found that in the AxisEngine class the following method invoke the remote service:

<AxisEngine-snip>

    public void send(MessageContext msgContext) throws AxisFault {

       .......

        if (!msgContext.isPaused()) {

            // write the Message to the Wire
            TransportOutDescription transportOut = msgContext.getTransportOut();
            TransportSender sender = transportOut.getSender();

            // This boolean property only used in client side fireAndForget invocation
            //It will set a property into message context and if some one has set the
            //property then transport sender will invoke in a diffrent thread
            Object isTranportBlocking = msgContext.getProperty(
                    MessageContext.TRANSPORT_NON_BLOCKING);
            if (isTranportBlocking != null && ((Boolean) isTranportBlocking).booleanValue()) {
                msgContext.getConfigurationContext().getThreadPool().execute(
                        new TranportNonBlockingInvocationWorker(msgContext, sender));
            } else {
                sender.invoke(msgContext);
            }
        }
    }

</AxisEngine-snip>

The problem is that the sender object is NULL at the time it is ment to be used to invoke.

A bug or am I lacking any configuration in my client class using the generated stub?


Best regards / vennlig hilsen
Tore Larsen
Senior Software Engineer
Comptel Communication AS
e-mail        :  [EMAIL PROTECTED]


Reply via email to