繁体   English   中英

使用Apache Camel如何解组通过CXF端点进入的反序列化对象?

[英]Using Apache Camel how do I unmarshal my deserialized object that comes in through a CXF Endpoint?

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

目前我正在获取Web服务调用后的CXF特定对象。 如何将序列化对象从CXF MessageList中取出并继续使用?

我的路线:

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

我希望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>

我找到了。 我只是不得不使用它。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM