4

我有一个非常简单的骆驼路线。它从作为 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>
4

2 回答 2

8

我找到了。我只好用这个。

<camel:convertBodyTo type="com.whatever.Person"/>
于 2010-04-13T19:03:22.823 回答
0

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

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

于 2010-04-14T12:56:44.357 回答