Not sure to understand.
SoapMarshaler and SoapWriter and not used with the new endpoints, they
are only used with the old <http:endpoint/> one.

On Fri, Jan 30, 2009 at 14:53, Liav Ezer <[email protected]> wrote:
>
> Hi,
>
> I want to use the NEW http consumer endpoint (<http:consumer../>) in order
> to attach a marshaller.
>
> My problem is that i see that the exchange is identified as a soap request,
> hence it is wraped in "<env:" envelope & body tags in addition to it's
> actual wrapper which is via soapenv: tags.
>
> This causes an exception.
>
> I debugged it & found out that if i convert the following boolean to false
> everything is working without this <env> wrapper.
>
> public class SoapMarshaler {
>   ...
>   protected boolean soap = true;
>   ...
>   public boolean isSoap() {
>       return soap;
>   }
> }
>
> This is called from SoapWriter class:
>
> if (marshaler.isSoap()) {
>     writeSoapEnvelope(writer);
> }
>
> & indeed writeSoapEnvelope does the following wrapper:
>
> public void writeSoapEnvelope(XMLStreamWriter writer) throws Exception {
>        QName envelope = getEnvelopeName();
>        String soapUri = envelope.getNamespaceURI();
>        String soapPrefix = envelope.getPrefix();
>        writer.setPrefix(soapPrefix, soapUri);
>        writer.writeStartElement(soapPrefix, SoapMarshaler.ENVELOPE,
> soapUri);
>
> My question is:
>
> How do i control the exchange from the new http consumer so it won't be
> recognized as soap or will not be wrapped as described? I know the http
> soap-consumer endpoint wrapps the exchange with jbi & you can control it via
> the useJbiWrapper attribute in the xbean. Is there a solotion for this also?
>
> Here is my xbean:
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns:http="http://servicemix.apache.org/http/1.0";
>       xmlns:con="http://service.app.esb.abc.liav.com";
>       xmlns:abc="http://abc";>
>  <http:consumer service="con:PublicForecastWeatherService"
>                 endpoint="PublicForecastWeather"
>
> locationURI="http://localhost:8192/abc/services/internal/forecastWeather?in-out";
>                 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>
>
> Thanks in advance,
>
> Liav.
> --
> View this message in context: 
> http://www.nabble.com/Http-consumer-end-point-question-tp21747567p21747567.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to