The soap-consumer and soap-provider will support SOAP while the other ones don't (they just pass the request and won't do any soap related processing). If your endpoint is meant to provide access to a web services using SOAP, you should use a soap endpoint (either consumer or provider). If you use REST, the best way would be to create your own http marshaler and not use the soap endpoints.
On Mon, Feb 2, 2009 at 08:52, liav ezer <[email protected]> wrote: > What is the actual difference between the <http consumer> & the <http > soap-consumer>? Does the second one support REST services as well? > > And, do i need to keep a match between the consumer type to the provider > type? It seems like a logical thing to do... > > Thanks. > > On Mon, Feb 2, 2009 at 9:35 AM, Guillaume Nodet <[email protected]> wrote: > >> 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 >> > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ Open Source SOA http://fusesource.com
