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]