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

Reply via email to