I did not specify it but here is the message I try to send: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:esb="http://www.bsb.com/incubator/esb"> <soapenv:Header/> <soapenv:Body> <esb:GetPerson> <socialId>528404-885-24</socialId> </esb:GetPerson> </soapenv:Body> </soapenv:Envelope>
I am not sure it helps though... Olivier Roger wrote: > > I remove the xmlbeans usage to use an interface using String as input and > output parameter types. > > package com.bsb.incubator.esb.fuse4; > > import javax.jws.WebParam; > import javax.jws.WebService; > > @WebService(targetNamespace = "http://www.bsb.com/incubator/esb") > public interface IWS { > String GetPerson(@WebParam(name="socialId") String socialId) ; > } > > Using the debugger it seems that the exchange variable does not contains > the request payload. > Here is content: > > Header: [] > Body: [[esb:GetPerson: null]] > > http://old.nabble.com/file/p28241790/%255BPAYLOAD%255DCxfPayload.png > > I provided the sample of my project. > > > Olivier Roger wrote: >> >> Thanks for you input willem, >> >> I am using the lastest Fuse ESB distribution which includes Camel 2.2. >> I will try to launch the example you indicated and what is different from >> my implementation. >> >> If I cannot figure it out I will provide a sample project. >> >> http://old.nabble.com/file/p28241790/CXFPayload.zip CXFPayload.zip >> >> Olivier >> >> >> willem.jiang wrote: >>> >>> I just ran a simple test by printing out the result of >>> exchange.getIn().getBody(String.class) in the >>> CxfConsumerPayloadTest.java on the trunk (Camel 2.3-SNAPSHOT), I can see >>> the message body was printed out rightly. >>> >>> Which version of Camel are you using ? >>> >>> Willem >>> >>> Willem Jiang wrote: >>>> Hi, >>>> >>>> When you use exchange.getIn().getBody(String.class) to get the message, >>>> camel will try to find a right converter to turn PayLoad (the actual >>>> object stored in the message body) into String. >>>> It looks like there is not a converter to do this job, so you got null. >>>> If I remember right, a StringConverter should be use in this case, I >>>> don't know why it doesn't work for you. >>>> If you use exchange.getIn().getBody() , you should get the PayLoad >>>> object. You can find more detail example here[1] >>>> >>>> [1]https://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerPayloadTest.java >>>> >>>> >>>> >>>> Willem >>>> >>>> Olivier Roger wrote: >>>>> Hello Camel, >>>>> >>>>> I am experimenting a strange issue when using CXF inbound endpoint >>>>> with >>>>> PAYLOAD dataformat option (no problem in MESSAGE mode). >>>>> >>>>> First I declare a CXF endpoint: >>>>> >>>>> <cxf:cxfEndpoint id="F1" address="http://localhost:10101/F1" >>>>> serviceClass="CXFUseCase"> <!-- Interface with one method --> >>>>> <cxf:dataBinding> >>>>> <bean class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" >>>>> /> >>>>> </cxf:dataBinding> >>>>> <cxf:properties> >>>>> <entry key="dataFormat" value="PAYLOAD"/> >>>>> </cxf:properties> >>>>> </cxf:cxfEndpoint> >>>>> >>>>> Then, in my route I use it: >>>>> >>>>> <route> >>>>> <from uri="cxf:bean:F1" /> >>>>> <bean ref="inspect" /> >>>>> >>>>> When I debug in the inspect bean the Exchange object does not contain >>>>> any >>>>> value. >>>>> However, setting a response value works correctly. >>>>> >>>>> public void process(final Exchange exchange){ >>>>> String msg = exchange.getIn().getBody(String.class); >>>>> System.out.println(msg); // is null >>>>> exchange.getOut().setBody(createResponse(), >>>>> PersonDocument.class); // >>>>> is ok >>>>> } >>>>> >>>>> I read the documentation on the website but found it quite not clear. >>>>> Am I >>>>> doing something wrong? >>>>> >>>>> Thanks in advance, >>>>> >>>>> Olivier >>>> >>>> >>> >>> >>> >> >> > > -- View this message in context: http://old.nabble.com/-CXF--Inbound-endpoint-with-PAYLOAD-dataformat-tp28240799p28241806.html Sent from the Camel - Users mailing list archive at Nabble.com.