Barry Tarlton created AXIS2-5501:
------------------------------------

             Summary: Creating ServiceClient with ConfigContext created using 
createDefaultConfigurationContext() causes NullPointerException
                 Key: AXIS2-5501
                 URL: https://issues.apache.org/jira/browse/AXIS2-5501
             Project: Axis2
          Issue Type: Bug
          Components: transports
    Affects Versions: 1.6.2, 1.6.1, 1.6.0
         Environment: Any.  Testing on Windows 7 with java 1.5.
            Reporter: Barry Tarlton
            Priority: Critical
             Fix For: 1.5.6


Something has changed from 1.5.6 and 1.6.0 in the axis2-transport-http.jar that 
causes a null pointer exception if you initialize your ServiceClient with an 
ConfigurationContext that was created by calling 
ConfigurationContextFactory.createDefaultConfigurationContext().  

Here's the modified sample that shows the behavior:

public class EchoBlockingClient {
    private static EndpointReference targetEPR = new 
EndpointReference("http://localhost:8080/checkSoap";);

    public static void main(String[] args) throws Exception {
        try {
            OMElement payload = ClientUtil.getEchoOMElement();
            Options options = new Options();
            options.setTo(targetEPR);
            options.setAction("urn:echo");

            // create config using defaultConfigurationContext... 
            // this does not initialize the transportOutDescription's sender's 
transportOut and causes a null pointer
            ConfigurationContext defaultContext= 
ConfigurationContextFactory.createDefaultConfigurationContext();
            
            
            // this initializes the transportOut.sender.transportOut properly 
and allows it to work.
            // ConfigurationContext defaultContext= 
ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, 
null);
            
            
            
            //Blocking invocation
            ServiceClient sender = new ServiceClient(defaultContext, null);
            sender.setOptions(options);
            OMElement result = sender.sendReceive(payload);

            System.out.println(result);

        } catch (AxisFault axisFault) {
            axisFault.printStackTrace();
        }
    }



I see the following exception when doing so:

Exception in thread "main" java.lang.NullPointerException
        at 
org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:172)
        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)


This is because the TransportOutDescription is never set on the 
CommonHTTPTransportSender.  

If I change the code and use the

ConfigurationContext defaultContext= 
ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, 
null);

Then this code works fine.

I can also, just replace the axis2-transport-http-1.6.0.jar with the 
axis2-transport-http-1.5.6.jar and it will work either way.




--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
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