You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Chris Manning (JIRA)" <ji...@apache.org> on 2008/10/08 17:31:44 UTC

[jira] Commented: (AXIS2-3141) Can't use SSL with scope="transportsession"

    [ https://issues.apache.org/jira/browse/AXIS2-3141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12637962#action_12637962 ] 

Chris Manning commented on AXIS2-3141:
--------------------------------------

There is still an issue in Axis2 1.4.1.  The stack trace has changed to :
java.lang.NullPointerException
        at org.apache.axis2.engine.DispatchPhase.fillContextsFromSessionContext(DispatchPhase.java:257)
        at org.apache.axis2.engine.DispatchPhase.loadContexts(DispatchPhase.java:161)
        at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:100)
        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:133)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3245)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

> 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 and 1.5.0_06, Tomcat 4.1.30, Axis2 1.3 and 1.2.
>            Reporter: Andrew Martin
>            Assignee: Deepal Jayasinghe
>            Priority: Blocker
>         Attachments: httpsaxis2v1.2.patch
>
>
> 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 modified my axis2.xml, uncommenting this section:
> <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">...
> Is that necessary?  I thought that SSL was controlled entirely by the servlet container in Axis1.  Has that changed in Axis2?
> After that, I got this:
> java.lang.UnsupportedClassVersionError: org/apache/http/impl/nio/reactor/SSLIOSessionHandler (Unsupported major.minor version 49.0)
> I tried temporarily switching to jre1.5.0_06.  Is that necessary?  I thought Axis2 was compatible with Java 1.4.
> After that, I no longer get the NullPointerException immediately.
> 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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org