axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Davanum Srinivas (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (AXIS2-3141) Can't use SSL with scope="transportsession"
Date Wed, 27 Feb 2008 17:13:51 GMT

     [ https://issues.apache.org/jira/browse/AXIS2-3141?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Davanum Srinivas resolved AXIS2-3141.
-------------------------------------

    Resolution: Fixed

> 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


Mime
View raw message