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. 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-tp28240799p28241427.html Sent from the Camel - Users mailing list archive at Nabble.com.