[
https://issues.apache.org/jira/browse/AXIS2-3141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12548609
]
Vassilis Virvilis commented on AXIS2-3141:
------------------------------------------
Just now I realized that the scope of the bug is smaller.
In order to work around the bug I thought I had to rerun wsdl2java everytime I
change something in the service even for non interface changes. That was
irritating to no end because for every bug fix in the service we had to update
the clients.
What' actually happening though is that the old client starts working with the
newly changed service after 5-10min. The running of wsdl2java was hiding the
issue since it requires 4min in my machine but that's probably a different
bug....
> 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
>
> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]