"Is not a valid SOAP version" exception generated when there are mutliple xmlns
entries in the request
------------------------------------------------------------------------------------------------------
Key: CXF-1117
URL: https://issues.apache.org/jira/browse/CXF-1117
Project: CXF
Issue Type: Bug
Components: Soap Binding
Affects Versions: 2.0.1
Environment: Linux X64 SLES 9 JDK 1.6_02
Reporter: Rupert Daniel
I have a perl client using one of my SOAP services and their request looks
like.....
<soap:Envelope
xmlns:ns1="http://www.apertio.com/irate"
xmlns:ns2="http://jaxb.dev.java.net/array"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ns1:getSessions
xsi:nil="true"/>
</soap:Body>
</soap:Envelope>
This results in the following exception on the server....
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: "http://schemas.xmlsoap.org/wsdl/soap/"
is not a valid SOAP version.
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:92)
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:57)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:73)
at
org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDestination.java:78)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:231)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:139)
at
org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:271)
at
org.apache.cxf.transport.servlet.CXFServlet.doPost(CXFServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
When I use the SOAP service through one of my Java clients using the JAX-WS
Proxy, it all works fine. Below is an example of the Java client request....
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:getSessions
xmlns:ns1="http://www.apertio.com/irate">
</ns1:getSessions>
</soap:Body>
</soap:Envelope>
Looking at the code in ReadHeadersInterceptor.java for the method
handleMessage() it looks like it is only expecting one namespace URL definition
in the request (I could be wrong!!!).
Any ideas on what is wrong or any possible work arounds on the server side?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.