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