You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Liav Ezer <li...@gmail.com> on 2009/01/27 17:30:35 UTC
Http-consumer BC is wrapping the exchange with tags
Hi,
I have a working set of components:
1 Http end-point (role=consumer)
1 Http end-point (role=provider)
1 Camel SE
Since i want to plant logic to my consumed exchanged - i added a Marshaller
& replaced the current consumer with a new one.
(Refer to http://servicemix.apache.org/servicemix-http-new-endpoints.html)
Here is my new consumer's xbean:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:http="http://servicemix.apache.org/http/1.0"
xmlns:con="http://con"
xmlns:abc="http://abc">
<http:consumer service="con:PublicForecastWeatherService"
endpoint="PublicForecastWeather"
locationURI="http://localhost:8192/abc/services/internal/forecastWeather"
defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
targetService="abc:abcInternalService"
marshaler="#marshaler" />
<bean id="marshaler" class="org.apache.servicemix.jbi.HTTPMarshaler"
/>
</beans>
My Problem:
I used a sniffer to intercept my client request to this consumer end-point &
here it is:
client request:
<?xml version='1.0' encoding='UTF-8' ?>
<soapenv:Envelope 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">
<soapenv:Body>
<getForcastPerLocation xmlns="http://service.app.esb.abc.liav.com">
<location>NYC</location>
</getForcastPerLocation>
</soapenv:Body>
</soapenv:Envelope>
& i also intercepted the exchange from the new consumer to the ESB:
Consumer request
<?xml version='1.0' encoding='UTF-8' ?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<soapenv:Envelope
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">
<soapenv:Body>
<getForcastPerLocation
xmlns="http://service.app.esb.abc.liav.com">
<location>NYC</location>
</getForcastPerLocation>
</soapenv:Body>
</soapenv:Envelope>
</env:Envelope>
</env:Body>
You can see that the new component wraps this soap request with additional
<env> Envelope & Body tags while the old consumer didn't (i checked it's
request as well)
My Questions:
1. Why does the exchange being wrapped like that using the new end-points?
2. If this is standard, how can i normelize my message to fit an old type
provider?
3. Do i need to convewrt my old provider to be from the new kind as well?
Thanks in advance,
Liav.
--
View this message in context: http://www.nabble.com/Http-consumer-BC-is-wrapping-the-exchange-with-%3Cenv%3E-tags-tp21688868p21688868.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: Http-consumer BC is wrapping the exchange with tags
Posted by Liav Ezer <li...@gmail.com>.
Anyone..?
Liav Ezer wrote:
>
> Hi,
>
> I have a working set of components:
> 1 Http end-point (role=consumer)
> 1 Http end-point (role=provider)
> 1 Camel SE
>
> Since i want to plant logic to my consumed exchanged - i added a
> Marshaller & therfore replaced the current consumer with a new one.
> (Refer to http://servicemix.apache.org/servicemix-http-new-endpoints.html
> for the new http end-points)
>
> Here is my new consumer's xbean:
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
> xmlns:con="http://con"
> xmlns:abc="http://abc">
> <http:consumer service="con:PublicForecastWeatherService"
> endpoint="PublicForecastWeather"
>
> locationURI="http://localhost:8192/abc/services/internal/forecastWeather"
> defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
> targetService="abc:abcInternalService"
> marshaler="#marshaler" />
> <bean id="marshaler" class="org.apache.servicemix.jbi.HTTPMarshaler"
> />
> </beans>
>
> My Problem:
> I used a sniffer to intercept my client request to this consumer end-point
> & here it is:
> client request:
> <?xml version='1.0' encoding='UTF-8' ?>
> <soapenv:Envelope
> 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">
> <soapenv:Body>
> <getForcastPerLocation
> xmlns="http://service.app.esb.abc.liav.com">
> <location>NYC</location>
> </getForcastPerLocation>
> </soapenv:Body>
> </soapenv:Envelope>
>
> & i also intercepted the exchange from the new consumer to the ESB:
> Consumer request
> <?xml version='1.0' encoding='UTF-8' ?>
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
> <env:Body>
> <soapenv:Envelope
> 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">
> <soapenv:Body>
> <getForcastPerLocation
> xmlns="http://service.app.esb.abc.liav.com">
> <location>NYC</location>
> </getForcastPerLocation>
> </soapenv:Body>
> </soapenv:Envelope>
> </env:Envelope>
> </env:Body>
>
> You can see that the new component wraps this soap request with additional
> <env> Envelope & Body tags while the old consumer didn't (i checked it's
> request as well)
>
> My Questions:
> 1. Why does the exchange being wrapped like that using the new end-points?
> 2. If this is standard, how can i normelize my message to fit an old type
> provider?
> 3. Do i need to convert my old provider to be from the new kind as well?
> 4. Can you suggest a way to use the old http end-points with an atached
> Marshaller or other way to manipulate the exchange object on the consumer
> stage?
>
> Thanks in advance,
> Liav.
>
>
>
--
View this message in context: http://www.nabble.com/Http-consumer-BC-is-wrapping-the-exchange-with-%3Cenv%3E-tags-tp21688868p21711243.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.