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 13:10:14 GMT
It's right. If you take a look at the PayLoad[1] toString method, you 
will find it has header and body two parts. The content is right.
And [esb:GetPerson: null]] is the GetPerson element to String's value.

[1] 
https://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfPayload.java

Willem


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
>>>>
>>>
>>>
>>
> 


Mime
View raw message