You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Liav Ezer (JIRA)" <ji...@apache.org> on 2009/02/08 17:37:04 UTC
[jira] Assigned: (SM-1787) Replacing the old http provider endpoint
(soap=true) with the new soap-provider causing a malformed request followed
by "SOAPAction header is missing" error
[ https://issues.apache.org/activemq/browse/SM-1787?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Liav Ezer reassigned SM-1787:
-----------------------------
Assignee: Guillaume Nodet
> Replacing the old http provider endpoint (soap=true) with the new soap-provider causing a malformed request followed by "SOAPAction header is missing" error
> ------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: SM-1787
> URL: https://issues.apache.org/activemq/browse/SM-1787
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-http
> Environment: OS: winXP, server: Tomcat, Servicemix: 3.3.1.3, IDE: eclipce, Java: 5.
> Reporter: Liav Ezer
> Assignee: Guillaume Nodet
> Attachments: 2_JIRA.zip
>
>
> I deployed 3 SA: soap-consumer, camle SE & an old SMX http provider with soap=true attribute.
> My scenario is simple & working under this constelation:
> A client aaplication send a soap request to the listing soap-consumer (with my own marshaler).
> The consumer relay it to the Camel Router Builder. In the Camel i process (via my own processor) the request & relay it (via producerTemplet) to the old http provider.
> The provider send the soap request to a deplyed server application (under Tomcat) & return with a response.
> The response is sent back all the way to the client application.
> The Problem:
> I want to upgrade my provider to the new soap-provider. When doing so i get a soap fault message indicating that i have "No soapAction header!" (<faultstring>no SOAPAction header!</faultstring>) & i can clearly see (with a wireshark sniffer) that indeed the request is malformed compare to the one sent with the old provider endpoint. You can't see the soap envelope nither its body in it.
> Here is the old provider request (taken from a sniffer):
> [\O72HiP/fPOST /ForecasterService/services/ForecastWeatherImp HTTP/1.1
> User-Agent: Axis/1.4
> SOAPAction: ""
> Pragma: no-cache
> REQUEST_METHOD: POST
> Cache-Control: no-cache
> CONTENT_TYPE: text/xml; charset=utf-8
> Accept: application/soap+xml, application/dime, multipart/related, text/*
> REQUEST_URI: http://localhost:8192/abc/services/internal/forecastWeather/
> Content-Type: text/xml;charset=UTF-8
> Content-Length: 419
> Host: drorav02:8080
> <?xml version='1.0' encoding='UTF-8'?>
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
> <env:Body>
> <getForcastPerLocation xmlns="http://service.app.esb.abc.liav.com"
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <location>NYC</location>
> </getForcastPerLocation>
> </env:Body>
> </env:Envelope>
> The old provider xbean:
> <http:endpoint service="prd:ForecastWeatherImpService"
> endpoint="prd:ForecastWeatherImp"
> role="provider"
> locationURI="http://drorav02:8080/ForecasterService/services/ForecastWeatherImp"
> wsdlResource="classpath:ForecastWeatherImp.wsdl"
> defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
> soap="true"
> soapVersion="1.1"/>
> Here is the new provider soap request (taken from the same sniffer):
> [WP,POST /ForecasterService/services/ForecastWeatherImp HTTP/1.1
> Content-Type: text/xml
> Host: drorav02:8080
> Content-Length: 438
> The new provider xbean:
> <http:soap-provider service="prd:ForecastWeatherImpService"
> endpoint="ForecastWeatherImp"
> locationURI="http://drorav02:8080/ForecasterService/services/ForecastWeatherImp"
> wsdl="classpath:ForecastWeatherImp.wsdl"
> useJbiWrapper="false"
> validateWsdl="false"/>
> Just in case, here is the soap-consumer xbean:
> <http:soap-consumer service="con:ForecastWeatherImpService"
> endpoint="ForecastWeatherImp"
> locationURI="http://localhost:8192/abc/services/internal/forecastWeather?in-out"
> defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
> targetService="abc:abcInternalService"
> useJbiWrapper="false"
> marshaler="#abcGenericMarshaler"
> wsdl="classpath:PublicForecastWeather.wsdl" />
> <bean id="abcGenericMarshaler" class="org.apache.servicemix.jbi.HTTPSOAPMarshaler"/>
> Attached are the relevent SA's (zipped).
> Thanks in advance.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.