[ 
https://issues.apache.org/jira/browse/SMXCOMP-80?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Guillaume Nodet reassigned SMXCOMP-80:
--------------------------------------

    Assignee:     (was: 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: SMXCOMP-80
>                 URL: https://issues.apache.org/jira/browse/SMXCOMP-80
>             Project: ServiceMix Components
>          Issue Type: Bug
>          Components: servicemix-http
>         Environment: OS: winXP, server: Tomcat, Servicemix: 3.3.1.3, IDE: 
> eclipce, Java: 5.
>            Reporter: Liav Ezer
>             Fix For: 2013.02
>
>
> 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 was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to