To follow up - i just tried to expose my endpoint via an xbean as follows:

                  <http:endpoint service="echo:EchoService"
                                  endpoint="EchoServiceSOAP11port_http"
                                  role="provider"
                                  
locationURI="http://localhost:8080/axis2/services/EchoService";
              defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
              soapVersion ="1.1"/>

But now i get the exception:

java.io.IOException: An existing connection was forcibly closed by the remote host
       at sun.nio.ch.SocketDispatcher.read0(Native Method)
       at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:25)
       at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)
       at sun.nio.ch.IOUtil.read(IOUtil.java:206)
       at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:207)
       at org.mortbay.io.nio.ChannelEndPoint.fill(ChannelEndPoint.java:131)
       at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:283)
       at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
       at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:377)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:451)

The server (axis2/tomcat) is definitely running though!

Ian

--------------------------------------------------
From: "Ian Harrigan" <[email protected]>
Sent: Wednesday, June 03, 2009 4:21 PM
To: "Apache ServiceMix Dev" <[email protected]>; "Apache ServiceMix Users" <[email protected]>
Subject: Really need help with soap namespace mismatch

Hi All,

Im trying to invoke an axis2 web service deployed inside tomcat, heres the basic definition of it:

   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
   ....
<wsdl:binding name="EchoServiceSOAP11Binding" type="ns0:EchoServicePortType"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
       <wsdl:operation name="echo">
           <soap:operation soapAction="urn:echo" style="document"/>
           <wsdl:input>

               <soap:body use="literal"/>
           </wsdl:input>
           <wsdl:output>
               <soap:body use="literal"/>
           </wsdl:output>
       </wsdl:operation>

   </wsdl:binding>
....
....
<wsdl:port name="EchoServiceSOAP11port_http" binding="ns0:EchoServiceSOAP11Binding"> <soap:address location="http://localhost:8080/axis2/services/EchoService"/>
    <smix:endpoint role="provider" defaultMep="in-out"/>
       </wsdl:port>

I would have though that this would mean that service mix would have to use SOAP1.1 to invoke it (because of the 'soap' namespace), however, when i try to invoke it service mix shows the soap request as having a namespace of http://www.w3.org/2003/05/soap-envelope which is SOAP 1.2, i then get the error from tomcat/axis2 saying there is a mismatch, ie, im trying to send a soap1.2 request to a soap1.1 port/binding.

Can anyone help me with this??? I reall dont see what else i can try.

Thanks,
Ian

Reply via email to