"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.

Reply via email to