Have you tried using the soap provider endpoint ? It will
automatically set the right value for the soap action based on the
wsdl.

<http:soap-provider ... />

On Sat, Jan 31, 2009 at 20:11, Liav Ezer <[email protected]> wrote:
>
> Hi,
>
> Thanks for your reply. I use an old http provider & i guess it was the
> origin for those methods. Therefore, i replaced it now with a new http
> provider as follows:
>
> <beans xmlns:http="http://servicemix.apache.org/http/1.0";
> xmlns:prd="http://prd";>
>  <http:provider service="prd:ForecastWeatherImpService"
>         endpoint="prd:ForecastWeatherImpService"
>
> locationURI="http://localhost:8080/ForecasterService/services/ForecastWeatherImp";
> />
> </beans>
>
> & i get the following error in the SMX log:
>
>  fault: <?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>
>  <soapenv:Fault>
>   <faultcode
> xmlns:ns1="http://xml.apache.org/axis/";>ns1:Client.NoSOAPAction</faultcode>
>   <faultstring>no SOAPAction header!</faultstring>
>   <detail>
>    <ns2:hostname
> xmlns:ns2="http://xml.apache.org/axis/";>LIAVE02</ns2:hostname>
>   </detail>
>  </soapenv:Fault>
>  </soapenv:Body>
> </soapenv:Envelope>
>
> I also valued the soapAction attribute in the wsdl to be:
> soapAction="no_params" with no change.
>
> Can you suggest on a solution? Can you also advise if i can use an old
> provider & a new consumer?
>
> Thanks.
>
> gnodet wrote:
>>
>> 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
>>
>>
>
> --
> View this message in context: 
> http://www.nabble.com/Http-consumer-end-point-question-tp21747567p21767145.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