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.

Reply via email to