camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: [CXF] Inbound endpoint with PAYLOAD dataformat
Date Wed, 14 Apr 2010 11:14:32 GMT
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
> 
> 


Mime
View raw message