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