Hi,

For your information, I fix the HTTP component content/type management:
https://issues.apache.org/activemq/browse/SMXCOMP-675

Previously, servicemix-http (soap consumer) only manages application/soap+xml content type (which is only valid for SOAP 1.2). Now, you can define the soap version as endpoint attribute and the endpoint can manage text/xml content type (which is valid for SOAP 1.1.

Maybe, it's your issue.

Regards
JB

gnanda wrote:
Hi Freeman,
Thanks for the reply. As per your suggestion I installed tcpmon to find the
difference. Here is what I found
From soapUI the message goes as application/soap+xml and from smx http
provider the message has content type as text/xml SOAPUI request message :
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/soap+xml;
action="urn:c2fConvertionResponse";charset=UTF-8
Transfer-Encoding: chunked
Date: Sun, 18 Apr 2010 17:28:36 GMT

1d9
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope
xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope";><soapenv:Header
xmlns:wsa="http://www.w3.org/2005/08/addressing";><wsa:Action>urn:c2fConvertionResponse</wsa:Action><wsa:RelatesTo>uuid:da2b44ed-c470-4e46-b720-dd86a145bee6

</wsa:RelatesTo></soapenv:Header><soapenv:Body><ns:c2fConvertionResponse
xmlns:ns="http://ws.pf.com";><ns:return>122.0</ns:return></ns:c2fConvertionResponse></soapenv:Body></soapenv:Envelope>
0
servicemix http request message:
POST
/axis2/services/TemperatureConverterService.TemperatureConverterServiceHttpSoap12Endpoint/
HTTP/1.1
Content-Type: text/xml;charset=UTF-8
Content-Length: 728
User-Agent: Jakarta Commons-HttpClient/3.1
Host: 127.0.0.1:1235

<?xml version='1.0' encoding='UTF-8'?><soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope";
xmlns:ws="http://ws.pf.com";><soap:Header
xmlns:wsa="http://www.w3.org/2005/08/addressing";><wsa:Action
xmlns:wsa="http://www.w3.org/2005/08/addressing";>urn:c2fConvertion</wsa:Action><wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing";>uuid:da2b44ed-c470-4e46-b720-dd86a145bee6</wsa:MessageID><wsa:To
xmlns:wsa="http://www.w3.org/2005/08/addressing";>http://localhost:1235/axis2/services/TemperatureConverterService.TemperatureConverterServiceHttpSoap12Endp

oint/</wsa:To></soap:Header><soap:Body><ws:c2fConvertion
xmlns:ws="http://ws.pf.com";><ws:cValue>50</ws:cValue></ws:c2fConvertion></soap:Body></soap:Envelope>

I think that is making it the different. Would it be possible to send a
message of type soap/xml from servicemix http provider end point? I do not
want to use CXF BC end point because it is WSDL driven and my requirement is
to pass the "locationURI" at run time to point to different external
webservice. If I use CXF BC , I am not sure if I can configure it at run time passing a
wsdl location and location URI.
Please suggest. Thank you foy for all your help and time.





Freeman Fang wrote:
Hi,

Not exactly sure what happened, could you use some tools like tcpmonitor between http provider and axis2 service? You can dump the on-wire message http endpoint sent out to compare it with that you send from soapui, you should be able to see the difference there.


And if you want to use soap feature, so should select cxf bc provider, as it's better soap support. For cxf bc provider, you needn't specify the soapVersion, you just specify a wsdl, cxf bc provider will load the wsdl and determine which soap version should be based on the wsdl binding.

Freeman
On 2010-4-15, at 上午11:05, gnanda wrote:

Hi all,
I am using apache-servicemix-4.0.0. I have a http provider end point which
is defined as below
 <http:endpoint service="test:hello"
              endpoint="endpoint"
                role="provider"

locationURI="http://localhost:80/axis2/services/TestService";

           soapVersion ="1.2"
                />
I am calling an external web service defined in Axis2 web server
when I am using below soap message it works
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope";
xmlns:test="http://test";>
  <soap:Header
xmlns:wsa="http://www.w3.org/2005/08/ addressing"><wsa:Action>urn:hello</wsa:Action>
<wsa:To>http://localhost:80/axis2/services/TestService</wsa:To>

<entity>abc</entity></soap:Header>
  <soap:Body>
     <test:hello>
        <!--Optional:-->
        <test:i>1</test:i>
     </test:hello>
  </soap:Body>
</soap:Envelope>

if i use soap 1.2 namesapce as below
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope";
xmlns:test="http://test";>
  <soap:Header
xmlns:wsa="http://www.w3.org/2005/08/ addressing"><wsa:Action>urn:hello</wsa:Action>
<wsa:To>http://localhost/axis2/services/TestService</wsa:To>

<entity>abc</entity></soap:Header>
  <soap:Body>
     <test:hello>
        <!--Optional:-->
        <test:i>1</test:i>
     </test:hello>
  </soap:Body>
</soap:Envelope>
it is returning me soap fault as below. I am sure axis2 is soap1.2 enabled, because if I send the above message from soapui to axis2 it returns correct
result to me.
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/ envelope/"><soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing";><wsa:Action>http://www.w3.org/2005/08/addressing/soap/fault </wsa:Action></ soapenv:Header
<soapenv:Body><soapenv:Fault><faultcode>soap:VersionMismatch</
faultcode><faultstring>Transport
level information does not match with SOAP Message namespace
URI</faultstring><detail/></soapenv:Fault></soapenv:Body></ soapenv:Envelope>

Please suggest

--
View this message in context:
http://old.nabble.com/smx4-http-provider-soap12-version-mismatch-tp28250751p28250751.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com




Reply via email to