Hi there,

thanks for the reply - it tried that but i get the exact same response (exception) also i fired up tcpmon and absolutely no data gets passes across...

Any ideas?

Ian

--------------------------------------------------
From: "Ford, Mark" <[email protected]>
Sent: Wednesday, June 03, 2009 8:22 PM
To: <[email protected]>
Subject: Re: Really need help with soap namespace mismatch

I've had success with the following:

<http:endpoint service="ns:service" endpoint="endpoint" role="provider" soap="true" locationURI="http://xxxxxx"; defaultMep="http://www.w3.org/2004/08/wsdl/in-out"; soapVersion="1.1" wsdlResource="classpath:wsdl/xxxx.wsdl"/>

You can also completely bypass the definition of the endpoint in the xbean and set the address directly on the endpoint via a BPEL assign. The following worked for me as well:

<wsa:EndpointReference>

<wsa:Address>http://example.com/services/MyService?http.soap=true&http.soapVersion=1.1</wsa:Address>
</wsa:EndpointReference>

Just watch your whitespace or you'll run into SM-1835.

Also, I have all of my SOAP traffic going through a tcpMon proxy so I can see what it looks like. This is very helpful in tracking down little things like this.

On 6/3/09 12:16 PM, "Ian Harrigan" <[email protected]> wrote:

Unfortunately i get the exact same 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)

My xbean endpoint looks like:

<http:soap-provider service="echo:EchoService"
                   endpoint="EchoServiceSOAP11port_http"

locationURI="http://localhost:8080/axis2/services/EchoService";
                   wsdl="classpath:EchoService.wsdl" />


--------------------------------------------------
From: "Guillaume Nodet" <[email protected]>
Sent: Wednesday, June 03, 2009 5:14 PM
To: <[email protected]>
Subject: Re: Really need help with soap namespace mismatch

Yes, sorry, i meant <http:soap-provider/>

On Wed, Jun 3, 2009 at 18:05, Ian Harrigan <[email protected]>
wrote:
Would i not need it to be a provider? I cant still try with the new ones, but im just checking to make sure im not misunderstanding something quite
basic.

The external service i want to call is on an axis2/tomcat installation.
Im
aiming to call this from a BPEL process deployed inside service mix, so
am i
right in think it should be a provider rather than a consumer?

Ill try both regardless i just want to make sure iv not been barking up
the
wrong tree..

Cheers,
Ian

--------------------------------------------------
From: "Guillaume Nodet" <[email protected]>
Sent: Wednesday, June 03, 2009 4:54 PM
To: "Apache ServiceMix Users" <[email protected]>
Subject: Re: Really need help with soap namespace mismatch

Have you tried using the <http:soap-consumer/> endpoint instead ?
See http://servicemix.apache.org/servicemix-http-new-endpoints.html

On Wed, Jun 3, 2009 at 17:44, Ian Harrigan <[email protected]>
wrote:

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





--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com





--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com





--
Mark Ford
MIT Lincoln Laboratory
244 Wood Street
Lexington MA 02420
(781) 981-1843

Reply via email to