[ https://issues.apache.org/jira/browse/AXIS2-3141?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Martin updated AXIS2-3141: --------------------------------- Description: When I try to invoke my service via https, Axis2 1.3 throws a NullPointerException (though it works fine via http): java.lang.NullPointerException at org.apache.axis2.engine.DispatchPhase.fillContextsFromSessionContext(DispatchPhase.java:227) at org.apache.axis2.engine.DispatchPhase.loadContexts(DispatchPhase.java:156) at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:95) at org.apache.axis2.engine.Phase.invoke(Phase.java:308) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120) at javax.servlet.http.HttpServlet.service(HttpServlet.java:716) at javax.servlet.http.HttpServlet.service(HttpServlet.java:809) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:199) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Unknown Source) Here's the stack trace if I use Axis2 1.2: Caused by: java.lang.NullPointerException at org.apache.axis2.engine.InstanceDispatcher.fillContextsFromSessionContext(InstanceDispatcher.java:123) at org.apache.axis2.engine.InstanceDispatcher.invoke(InstanceDispatcher.java:70) at org.apache.axis2.engine.Phase.invoke(Phase.java:383) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:203) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:131) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:279) at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:116) ... 33 more I think I found what's causing it. My service is defined like this in services.xml: <service name="..." scope="transportsession">...</service> If I remove 'scope="transportsession"', Axis2 no longer throws this Exception, and my own code is invoked (though it causes my code to fail, since mc.getSessionContext() returns null). Is there any reason why 'scope="transportsession"' would work via http but not https? I get the same error with version-1.3.aar in Axis2 1.3 and version.aar in Axis2 1.2 if I change the first line of its services.xml to this: <service name="Version" scope="transportsession"> I can get rid of the NullPointerException by modifying these lines of org.apache.axis2.engine.DispatchPhase.fillContextsFromSessionContext: TransportListener listener = msgContext.getTransportIn().getReceiver(); sessionContext = listener.getSessionContext(msgContext); I changed them to this: TransportInDescription description = msgContext.getTransportIn(); TransportListener listener = description == null ? null : description.getReceiver(); sessionContext = listener == null ? null : listener.getSessionContext(msgContext); However, that doesn't fix the real problem. This method for retrieving the SessionContext ends up returning null when the service is invoked via https (though it works fine via http): SessionContext getSession() { MessageContext mc = MessageContext.getCurrentMessageContext(); Options o; o = mc.getOptions(); if (o == null) { o = new Options(); mc.setOptions(o); } o.setManageSession(true); return mc.getSessionContext(); } was: When I try to invoke my service via https, Axis2 1.3 throws a NullPointerException (though it works fine via http): java.lang.NullPointerException at org.apache.axis2.engine.DispatchPhase.fillContextsFromSessionContext(DispatchPhase.java:227) at org.apache.axis2.engine.DispatchPhase.loadContexts(DispatchPhase.java:156) at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:95) at org.apache.axis2.engine.Phase.invoke(Phase.java:308) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120) at javax.servlet.http.HttpServlet.service(HttpServlet.java:716) at javax.servlet.http.HttpServlet.service(HttpServlet.java:809) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:199) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Unknown Source) Here's the stack trace if I use Axis2 1.2: Caused by: java.lang.NullPointerException at org.apache.axis2.engine.InstanceDispatcher.fillContextsFromSessionContext(InstanceDispatcher.java:123) at org.apache.axis2.engine.InstanceDispatcher.invoke(InstanceDispatcher.java:70) at org.apache.axis2.engine.Phase.invoke(Phase.java:383) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:203) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:131) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:279) at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:116) ... 33 more I think I found what's causing it. My service is defined like this in services.xml: <service name="..." scope="transportsession">...</service> If I remove 'scope="transportsession"', Axis2 no longer throws this Exception, and my own code is invoked (though it causes my code to fail, since mc.getSessionContext() returns null). Is there any reason why 'scope="transportsession"' would work via http but not https? I get the same error with version-1.3.aar in Axis2 1.3 and version.aar in Axis2 1.2 if I change the first line of its services.xml to this: <service name="Version" scope="transportsession"> I can get rid of the NullPointerException by modifying these lines of org.apache.axis2.engine.DispatchPhase.fillContextsFromSessionContext: TransportListener listener = msgContext.getTransportIn().getReceiver(); sessionContext = listener.getSessionContext(msgContext); I changed them to this: TransportInDescription description = msgContext.getTransportIn(); TransportListener listener = description == null ? null : description.getReceiver(); sessionContext = listener == null ? null : listener.getSessionContext(msgContext); However, that doesn't fix the real problem. This method for retrieving the SessionContext ends up returning null when the service is invoked via https (though it works fine via http): SessionContext getSession() { MessageContext mc = MessageContext.getCurrentMessageContext(); Options o; o = mc.getOptions(); if (o == null) { o = new Options(); mc.setOptions(o); } o.setManageSession(true); return mc.getSessionContext(); } > Can't use SSL with scope="transportsession" > ------------------------------------------- > > Key: AXIS2-3141 > URL: https://issues.apache.org/jira/browse/AXIS2-3141 > Project: Axis 2.0 (Axis2) > Issue Type: Bug > Affects Versions: 1.3, 1.2 > Environment: Windows XP Professional, Java 1.4.2_03, Tomcat 4.1.30, > Axis2 1.3 and 1.2. > Reporter: Andrew Martin > Priority: Blocker > > When I try to invoke my service via https, Axis2 1.3 throws a > NullPointerException (though it works fine via http): > java.lang.NullPointerException > at > org.apache.axis2.engine.DispatchPhase.fillContextsFromSessionContext(DispatchPhase.java:227) > at > org.apache.axis2.engine.DispatchPhase.loadContexts(DispatchPhase.java:156) > at > org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:95) > at org.apache.axis2.engine.Phase.invoke(Phase.java:308) > at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132) > at > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) > at > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:716) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:809) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) > at > org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:199) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) > at > org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) > at > org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) > at java.lang.Thread.run(Unknown Source) > Here's the stack trace if I use Axis2 1.2: > Caused by: java.lang.NullPointerException > at > org.apache.axis2.engine.InstanceDispatcher.fillContextsFromSessionContext(InstanceDispatcher.java:123) > at > org.apache.axis2.engine.InstanceDispatcher.invoke(InstanceDispatcher.java:70) > at org.apache.axis2.engine.Phase.invoke(Phase.java:383) > at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:203) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:131) > at > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:279) > at > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:116) > ... 33 more > I think I found what's causing it. My service is defined like this in > services.xml: > <service name="..." scope="transportsession">...</service> > If I remove 'scope="transportsession"', Axis2 no longer throws this > Exception, and my own code is invoked (though it causes my code to fail, > since mc.getSessionContext() returns null). > Is there any reason why 'scope="transportsession"' would work via http > but not https? > I get the same error with version-1.3.aar in Axis2 1.3 and version.aar in > Axis2 1.2 if I change the first line of its services.xml to this: > <service name="Version" scope="transportsession"> > I can get rid of the NullPointerException by modifying these lines of > org.apache.axis2.engine.DispatchPhase.fillContextsFromSessionContext: > TransportListener listener = msgContext.getTransportIn().getReceiver(); > sessionContext = listener.getSessionContext(msgContext); > I changed them to this: > TransportInDescription description = msgContext.getTransportIn(); > TransportListener listener = description == null ? null : > description.getReceiver(); > sessionContext = listener == null ? null : > listener.getSessionContext(msgContext); > However, that doesn't fix the real problem. This method for retrieving the > SessionContext ends up returning null when the service is invoked via https > (though it works fine via http): > SessionContext getSession() > { > MessageContext mc = MessageContext.getCurrentMessageContext(); > Options o; > o = mc.getOptions(); > if (o == null) > { > o = new Options(); > mc.setOptions(o); > } > o.setManageSession(true); > return mc.getSessionContext(); > } -- 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]