Java 使用ApacheCamel如何解组通过CXF端点传入的反序列化对象?

Java 使用ApacheCamel如何解组通过CXF端点传入的反序列化对象?,java,spring,cxf,apache-camel,Java,Spring,Cxf,Apache Camel,我有一条非常简单的骆驼路线。它从作为web服务公开的CXF端点开始。 然后我想将其转换为xml并调用bean上的方法 目前,在web服务调用之后,我得到了一个特定于CXF的对象。 如何将序列化对象从CXF消息列表中取出并继续使用它 我的路线: <camel:route> <camel:from uri="cxf:bean:helloEndpoint" /> <camel:marshal ref="xstream-utf8" /> <ca

我有一条非常简单的骆驼路线。它从作为web服务公开的CXF端点开始。 然后我想将其转换为xml并调用bean上的方法

目前,在web服务调用之后,我得到了一个特定于CXF的对象。 如何将序列化对象从CXF消息列表中取出并继续使用它

我的路线:

<camel:route>
   <camel:from uri="cxf:bean:helloEndpoint" />
   <camel:marshal ref="xstream-utf8" />
   <camel:to uri="bean:hello?method=hello"/>
</camel:route>

XML序列化消息:

<?xml version='1.0' encoding='UTF-8'?>
<org.apache.cxf.message.MessageContentsList serialization="custom">
   <unserializable-parents />
   <list>
      <default>
         <size>1</size>
      </default>
      <int>6</int>
      <com.whatever.Person>
         <firstName>Joe</firstName>
         <middleName></middleName>
         <lastName>Buddah</lastName>
         <dateOfBirth>2010-04-13 12:09:00.137 CDT</dateOfBirth>
      </com.whatever.Person>
   </list>
</org.apache.cxf.message.MessageContentsList>

1.
6.
乔
佛陀
2010-04-13 12:09:00.137 CDT
我希望XML更像这样:

<com.whatever.Person>
   <firstName>Joe</firstName>
   <middleName></middleName>
   <lastName>Buddah</lastName>
   <dateOfBirth>2010-04-13 12:09:00.137 CDT</dateOfBirth>
</com.whatever.Person>

乔
佛陀
2010-04-13 12:09:00.137 CDT

我找到了。我只能用这个

<camel:convertBodyTo type="com.whatever.Person"/>

您还可以使用JAXB数据格式,我认为CXF支持开箱即用的数据格式


我假设您已经使用CXF wsdl2java自动生成了模型对象?如果是这样,您可以查看生成的源代码,其中应该有@JAXB注释

我实际上是在公开一个web服务,而不是使用一个web服务。我也没有使用wsdl2java,但是感谢您提供的信息。我相信它将来会派上用场的!