The soap action should be set to the corresponding operation invoked on the web service. If it is not set, this may be because you did not set the operation field on the exchange to the right QName.
On Mon, Feb 2, 2009 at 12:19, liav ezer <[email protected]> wrote: > This is the response: > > eXtensible Markup Language > <?xml > <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> > > Usually i see the request also in this kind of format and the sniffer > indicates that this is HTTP/XML protocol but now i see the request as i sent > you before with only HTTP Protocol. Clearly something isn't right. > The content of the request is ambiguous, this is what i managed to extract > from the sniffer: > > [PohsP,POST /ForecasterService/services/ForecastWeatherImp HTTP/1.1 > Content-Type: text/xml > Host: liave02:8080 > Content-Length: 388 > > Should i omit the useJbiWrapper=false? I did it in my consumer as well. > > Thanks. > > > On Mon, Feb 2, 2009 at 1:03 PM, Guillaume Nodet <[email protected]> wrote: > >> Not sure what you mean. >> The request content type is text/xml so it looks good. >> Do you have the content of the request and the response ? >> >> On Mon, Feb 2, 2009 at 11:56, liav ezer <[email protected]> wrote: >> > Sure, it doesn't say much except for the fact that this isn't http/xml >> but >> > plain http request. >> > >> > Frame 20 (184 bytes on wire, 184 bytes captured) >> > Ethernet II, Src: Msi_5a:17:0a (00:16:17:5a:17:0a), Dst: >> HewlettP_d4:86:e0 >> > (00:13:21:d4:86:e0) >> > Internet Protocol, Src: 10.236.11.194 (10.236.11.194), Dst: 10.236.10.91 >> > (10.236.10.91) >> > Transmission Control Protocol, Src Port: queueadm (2230), Dst Port: >> http-alt >> > (8080), Seq: 1, Ack: 1, Len: 130 >> > Hypertext Transfer Protocol >> > POST /ForecasterService/services/ForecastWeatherImp HTTP/1.1\r\n >> > Request Method: POST >> > Request URI: /ForecasterService/services/ForecastWeatherImp >> > Request Version: HTTP/1.1 >> > Content-Type: text/xml\r\n >> > Content-Length: 388\r\n >> > Content length: 388 >> > \r\n >> > >> > I also debugged the message object sent to the doInterceptor(Message) by >> the >> > createRequest method (in HttpSoapProviderMarshaler): >> > >> > >> > {interface javax.jbi.messaging.MessageExchange=InOut[ >> > >> > id: ID:10.236.11.194-11f364479c2-2:15 >> > >> > status: Active >> > >> > role: provider >> > >> > service: {http://prd}ForecastWeatherImpService >> > >> > endpoint: ForecastWeatherImp >> > >> > in: <?xml version="1.0" encoding="UTF-8"?><getForcastPerLocation xmlns=" >> > http://service.app.esb.oxp.amdocs.com" 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 >> > "><location>Tel-Aviv</location></getForcastPerLocation> >> > >> > >> {*interface*javax.jbi.messaging.normalizedmessage=org.apache.servicemix.jbi.messaging.normalizedmessagei...@7a754f >> > {*properties*: {javax.jbi.messaging.protocol.headers={Content-Length=435, >> > User-Agent=Axis/1.4, Host=localhost:8192, SOAPAction="", Pragma=no-cache, >> > Content-Type=text/xml; charset=utf-8, REQUEST_METHOD=POST, >> > Cache-Control=no-cache, CONTENT_TYPE=text/xml; charset=utf-8, >> > Accept=application/soap+xml, application/dime, multipart/related, text/*, >> > REQUEST_URI= >> http://localhost:8192/oxp/services/internal/forecastWeather/}}<http://localhost:8192/oxp/services/internal/forecastWeather/%7D%7D> >> }, >> > class java.io.outputstream=java.io.bufferedoutputstr...@1aba945} >> > >> > Attachment & SOAP headers are empty. >> > >> > >> > >> > Thanks >> > >> > On Mon, Feb 2, 2009 at 12:46 PM, Guillaume Nodet <[email protected]> >> wrote: >> > >> >> Unfortunately, our mailing lists strip attachents. Can you include it >> >> inline please ? >> >> >> >> On Mon, Feb 2, 2009 at 11:44, liav ezer <[email protected]> wrote: >> >> > Sure, attached is a snapshot of the packet sent from the >> soap-provider: >> >> > >> >> > >> >> > On Mon, Feb 2, 2009 at 12:40 PM, Guillaume Nodet <[email protected]> >> >> wrote: >> >> >> >> >> >> Could you give some hints on what the sniffer sees ? >> >> >> >> >> >> On Mon, Feb 2, 2009 at 11:37, liav ezer <[email protected]> wrote: >> >> >> > Right, i saw the fixed getter: >> >> >> > >> >> >> > @Override >> >> >> > >> >> >> > public String getMethod() { >> >> >> > >> >> >> > return HttpMethods.POST; >> >> >> > >> >> >> > } >> >> >> > >> >> >> > Can you suggest why my provider (as follows) doesn't send the http >> >> >> > request >> >> >> > in XML format? (sniffer clearly shows that it's plain http & not >> >> >> > http/xml)? >> >> >> > >> >> >> > This is my providers xbean: >> >> >> > >> >> >> > <?xml version="1.0" encoding="UTF-8"?> >> >> >> > <beans xmlns:http="http://servicemix.apache.org/http/1.0" >> >> >> > xmlns:prd="http://prd"> >> >> >> > <http:soap-provider service="prd:ForecastWeatherImpService" >> >> >> > endpoint="ForecastWeatherImp" >> >> >> > >> >> >> > >> >> >> > locationURI=" >> >> http://drorav02:8080/ForecasterService/services/ForecastWeatherImp" >> >> >> > wsdl="classpath:ForecastWeatherImp.wsdl" >> >> >> > useJbiWrapper="false"/> >> >> >> > </beans> >> >> >> > >> >> >> > Attached is the wsdl file. >> >> >> > >> >> >> > Thanks in advcane. >> >> >> > >> >> >> > On Mon, Feb 2, 2009 at 11:36 AM, Guillaume Nodet <[email protected] >> > >> >> >> > wrote: >> >> >> >> >> >> >> >> No, all soap requests are sent using POST method. This is the >> >> >> >> expected behavior. >> >> >> >> >> >> >> >> On Mon, Feb 2, 2009 at 10:34, liav ezer <[email protected]> >> wrote: >> >> >> >> > Hi Guillaume, >> >> >> >> > >> >> >> >> > I debugged the process() method in HttpProviderEndpoint class & >> >> >> >> > looked >> >> >> >> > at >> >> >> >> > the value of the http exchange when its being sent: >> >> >> >> > >> >> >> >> > >> >> >> >> > getConnectionPool().send(*httpEx*); >> >> >> >> > >> >> >> >> > The value is: >> >> >> >> > >> >> >> >> > httpexcha...@1663347=*post* >> >> >> >> > //drorav02:8080/ForecasterService/services/ForecastWeatherImp#0 >> >> >> >> > >> >> >> >> > i also see that the *_requestContent* data member is a >> >> >> >> > *ByteArrayBuffer*type & has this value: >> >> >> >> > >> >> >> >> > <soap:Envelope xmlns:soap=" >> >> >> >> > >> >> >> >> > >> >> >> >> > http://schemas.xmlsoap.org/soap/envelope/ >> >> "><soap:Body><getForcastPerLocation< >> >> >> http://schemas.xmlsoap.org/soap/envelope/%22%3E%3Csoap:Body%3E%3CgetForcastPerLocation >> >> >xmlns=" >> >> >> >> > http://service.app.esb.abc.liav.com" 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 >> >> >> "><location>Ashdod</location></getForcastPerLocation></soap:Body></soap:Envelope< >> >> >> http://www.w3.org/2001/XMLSchema-instance%22%3E%3Clocation%3EAshdod%3C/location%3E%3C/getForcastPerLocation%3E%3C/soap:Body%3E%3C/soap:Envelope >> >> > >> >> >> >> >> >> >> >> >> > >> >> >> >> > It seems that the contecnt is soap but it's sent as POST. Can >> you >> >> see >> >> >> >> > the >> >> >> >> > problem? >> >> >> >> > Thanks. >> >> >> >> > ---------- Forwarded message ---------- >> >> >> >> > From: liav ezer <[email protected]> >> >> >> >> > Date: Mon, Feb 2, 2009 at 10:48 AM >> >> >> >> > Subject: Re: Http consumer end-point question >> >> >> >> > To: [email protected] >> >> >> >> > >> >> >> >> > >> >> >> >> > It seems that the transmission to my service via my >> soap-provider >> >> >> >> > isn't >> >> >> >> > soap. I used a sniffer and seen that the request is POST over >> HTTP. >> >> >> >> > >> >> >> >> > That's why i get a fault response specifying that there isn't >> any >> >> >> >> > SOAPAction >> >> >> >> > header... >> >> >> >> > >> >> >> >> > I suspected that the camel API (producerTemplate.send()) is >> messing >> >> >> >> > my >> >> >> >> > requset so i changed my router do a from().to() routing as >> follows: >> >> >> >> > >> >> >> >> > >> >> >> >> > from*(* >> >> >> >> > *"jbi:service:**http://oxp/oXpInternalService >> ").to("jbi:service: >> >> >> >> > http://prd/ForecastWeatherImpService");* >> >> >> >> > >> >> >> >> > & i still get this fault. It seems like it is related to the >> >> provider >> >> >> >> > end-point. Do you see something wrong in its configuration? >> >> >> >> > >> >> >> >> > Thanks >> >> >> >> > >> >> >> >> > On Mon, Feb 2, 2009 at 10:20 AM, Guillaume Nodet < >> >> [email protected]> >> >> >> >> > wrote: >> >> >> >> > >> >> >> >> >> The message you see in the NMR won't be the SOAP envelope. The >> >> soap >> >> >> >> >> envelope is put when the HTTP request is sent and removed when >> the >> >> >> >> >> response is received. >> >> >> >> >> You should check what happens on the other side of the consumer >> in >> >> >> >> >> your ForcastWeatherImp service. It seems to send back a fault >> for >> >> >> >> >> some reason. >> >> >> >> >> >> >> >> >> >> On Mon, Feb 2, 2009 at 09:11, liav ezer <[email protected]> >> >> wrote: >> >> >> >> >> > Ok. >> >> >> >> >> > >> >> >> >> >> > I followed your advise & used the following soap-provider >> >> >> >> >> > end-point: >> >> >> >> >> > >> >> >> >> >> > <?xml version="1.0" encoding="UTF-8"?> >> >> >> >> >> > <beans xmlns:http="http://servicemix.apache.org/http/1.0" >> >> >> >> >> > xmlns:prd=" >> >> >> >> >> > http://prd"> >> >> >> >> >> > <http:*soap-provider* >> service="prd:ForecastWeatherImpService" >> >> >> >> >> > endpoint="ForecastWeatherImp" >> >> >> >> >> > locationURI=" >> >> >> >> >> > >> >> >> >> >> > >> >> http://localhost:8080/ForecasterService/services/ForecastWeatherImp" >> >> >> >> >> > wsdl="classpath:ForecastWeatherImp.wsdl" >> >> >> >> >> > useJbiWrapper="false"/> >> >> >> >> >> > </beans> >> >> >> >> >> > >> >> >> >> >> > but i get an error which i don't understand its origin: >> >> >> >> >> > >> >> >> >> >> > DEBUG - HttpComponent - Received exchange: >> >> >> >> >> > status: >> >> >> >> >> Active, >> >> >> >> >> > role: provider >> >> >> >> >> > DEBUG - HttpComponent - Retrieved >> correlation >> >> id: >> >> >> >> >> > null >> >> >> >> >> > DEBUG - DefaultHttpProviderMarshaler - Using default >> request >> >> >> >> >> > encoding >> >> >> >> >> in >> >> >> >> >> > provider marshaller. >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > org.apache.servicemix.soap.interceptors.jbi.JbiOutInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > >> >> org.apache.servicemix.soap.interceptors.jbi.JbiOutWsdl1Interceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> org.apache.servicemix.soap.interceptors.mime.AttachmentsOutInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > >> org.apache.servicemix.soap.interceptors.xml.StaxOutInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> org.apache.servicemix.soap.bindings.soap.interceptors.SoapOutInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > >> org.apache.servicemix.soap.interceptors.xml.BodyOutInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> > org.apache.servicemix.soap.interceptors.jbi.JbiOutInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> > >> >> org.apache.servicemix.soap.interceptors.jbi.JbiOutWsdl1Interceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> org.apache.servicemix.soap.interceptors.mime.AttachmentsOutInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> org.apache.servicemix.soap.interceptors.xml.StaxOutInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> org.apache.servicemix.soap.bindings.soap.interceptors.SoapOutInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> org.apache.servicemix.soap.interceptors.xml.BodyOutInterceptor >> >> >> >> >> > DEBUG - DefaultHttpProviderMarshaler - Using default >> response >> >> >> >> >> > encoding >> >> >> >> >> in >> >> >> >> >> > provider marshaller. >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > >> >> >> >> >> > >> >> org.apache.servicemix.soap.interceptors.mime.AttachmentsInInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > org.apache.servicemix.soap.interceptors.xml.StaxInInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> org.apache.servicemix.soap.bindings.soap.interceptors.SoapInInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> org.apache.servicemix.soap.bindings.soap.interceptors.SoapFaultInInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > >> >> org.apache.servicemix.soap.interceptors.jbi.JbiInWsdl1Interceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Adding interceptor >> >> >> >> >> > org.apache.servicemix.soap.interceptors.jbi.JbiInInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> > >> >> >> >> >> > >> >> org.apache.servicemix.soap.interceptors.mime.AttachmentsInInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> > org.apache.servicemix.soap.interceptors.xml.StaxInInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> org.apache.servicemix.soap.bindings.soap.interceptors.SoapInInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> org.apache.servicemix.soap.bindings.soap.interceptors.SoapFaultInInterceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> > >> >> org.apache.servicemix.soap.interceptors.jbi.JbiInWsdl1Interceptor >> >> >> >> >> > DEBUG - PhaseInterceptorChain - Invoking >> handleMessage >> >> on >> >> >> >> >> > interceptor >> >> >> >> >> > org.apache.servicemix.soap.interceptors.jbi.JbiInInterceptor >> >> >> >> >> > DEBUG - DeliveryChannelImpl - Send >> >> >> >> >> > ID:10.236.11.194-11f35e61a07-2:0 in >> >> >> >> >> > DeliveryChannel{servicemix-http} >> >> >> >> >> > DEBUG - SecuredBroker - send exchange with >> >> secure >> >> >> >> >> > broker >> >> >> >> >> > DEBUG - SedaFlow - Called Flow send >> >> >> >> >> > DEBUG - SedaQueue - >> >> >> >> >> > org.apache.servicemix.jbi.nmr.flow.seda.sedaqueu...@120a5d7 >> >> >> >> >> > dequeued >> >> >> >> >> > exchange: InOut[ >> >> >> >> >> > id: ID:10.236.11.194-11f35e61a07-2:0 >> >> >> >> >> > status: Active >> >> >> >> >> > role: consumer >> >> >> >> >> > service: {http://prd}ForecastWeatherImpService >> >> >> >> >> > endpoint: ForecastWeatherImp >> >> >> >> >> > in: <?xml version="1.0" >> >> encoding="UTF-8"?><getForcastPerLocation >> >> >> >> >> > xmlns=" >> >> >> >> >> > http://service.app.esb.abc.liav.com" 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 >> >> >> >> >> "><location>Ashdod</location></getForcastPerLocation< >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> http://www.w3.org/2001/XMLSchema-instance%22%3E%3Clocation%3EAshdod%3C/location%3E%3C/getForcastPerLocation >> >> >> >> >> > >> >> >> >> >> >> >> >> >> >> >> > *fault: <?xml version="1.0" encoding="UTF-8"?><ns2:hostname >> >> >> >> >> xmlns:ns2="** >> >> >> >> >> > http://xml.apache.org/axis/">LIAVE02</ns2:hostname*< >> >> >> >> >> http://xml.apache.org/axis/%22%3ELIAVE02%3C/ns2:hostname> >> >> >> >> >> > *>* >> >> >> >> >> > >> >> >> >> >> > You can see that the in part isn't wrapped with either jbi >> >> wrapper >> >> >> >> >> > or >> >> >> >> >> soap >> >> >> >> >> > envelope & i guess this is the cause of the problem. >> >> >> >> >> > >> >> >> >> >> > Jbi wrapper i don't need, how can i cause the request to be >> >> >> >> >> > wraaped >> >> >> >> >> > in >> >> >> >> >> > <soapenv> tags? >> >> >> >> >> > >> >> >> >> >> > This is the way i invoke the endpoint: >> >> >> >> >> > >> >> >> >> >> > ProducerTemplate<Exchange> serviceProducer = >> >> >> >> >> > exchange.getContext().createProducerTemplate(); >> >> >> >> >> > String targetEndpoint = "jbi:service: >> >> >> >> >> http://prd/ForecastWeatherImpService >> >> >> >> >> > "; >> >> >> >> >> > Endpoint serviceProviderEP = >> >> >> >> >> > exchange.getContext().getEndpoint(targetEndpoint); >> >> >> >> >> > Exchange serviceProviderExchange = >> >> >> >> >> > serviceProviderEP.createExchange(ExchangePattern.InOut); >> >> >> >> >> > >> >> >> >> >> > serviceProviderExchange.setIn(exchange.getIn()); >> >> >> >> >> > Exchange serviceResultExchange = >> >> >> >> >> *serviceProducer.send(serviceProviderEP, >> >> >> >> >> > serviceProviderExchange); >> >> >> >> >> > * >> >> >> >> >> > //reply yo the consumer >> >> >> >> >> > >> >> >> >> >> > >> >> exchange.getOut().setBody(serviceResultExchange.getOut().getBody()); >> >> >> >> >> > >> >> >> >> >> > Thanks. >> >> >> >> >> > >> >> >> >> >> > On Mon, Feb 2, 2009 at 9:59 AM, Guillaume Nodet < >> >> [email protected]> >> >> >> >> >> wrote: >> >> >> >> >> > >> >> >> >> >> >> 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 >> >> >> >> >> >> >> >> >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> >> >> 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 >> >> >> > >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> 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 >> >> >> > >> >> >> >> -- >> 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
