first SSL POST request to AxisServlet with transportsession scope leads to NPE 
in DispatchPhase.fillContextsFromSessionContext
------------------------------------------------------------------------------------------------------------------------------

                 Key: AXIS2-3876
                 URL: https://issues.apache.org/jira/browse/AXIS2-3876
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: transports
    Affects Versions: 1.4
         Environment: WLS8.1, AIX
            Reporter: Matthias Weber
            Priority: Critical


We use Axis 1.4 in an WLS 8.1 environment. There are no TransportReceivers 
registered in axis2.xml.

After server start or redeploy it is impossible to get an answer to a POST 
request via SSL. We see following exception:

@|27.06.2008 11:01:53|ERROR|org.apache.axis2.transport.http.AxisServlet|
java.lang.NullPointerException
        at 
org.apache.axis2.engine.DispatchPhase.fillContextsFromSessionContext(DispatchPhase.java:229)
        at 
org.apache.axis2.engine.DispatchPhase.loadContexts(DispatchPhase.java:158)
        at 
org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:97)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:333)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
        at 
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
        at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:131)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:854)
        at 
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
        at 
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
        at 
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:349)
        at 
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)
        at 
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at 
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at 
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
        at 
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

After the first sent GET there is no problem anymore.

The NPE is thrown here:

TransportListener listener = msgContext.getTransportIn().getReceiver();

Seems that msgContext.getTransportIn() returns null. 

Maybe this is because AxisServlet only resisters itself as TransportListener 
for HTTP scheme. From AxisServlet.init(ServletConfig config):

TransportInDescription transportInDescription = new 
TransportInDescription(Constants.TRANSPORT_HTTP);
transportInDescription.setReceiver(this);
listenerManager.addListener(transportInDescription, true); 

Would it be possible to register AxisServlet here also for HTTPS?

A GET request never fails because doGet() does an 
agent.initTransportListener(request); but doPost() never does.

I know, there was already an Jira issue AXIS2-3141 which addresses the same 
thing. But the attached patch seems to be only a workaround.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to