0

我们正在使用 CXF 构建一个 REST 服务,在该服务中我们以 JSON 和 XML 格式发送和接收数据

在 JSON 版本中,我们不想打扰我们的客户使用属性的“@”表示法并使用 JsonProvider (org.apache.cxf.jaxrs.provider.json.JSONProvider) 上的“attributesToElements”参数确保我们不发送这些以这种方式赋予客户的属性。

但是,当接收回数据(相同格式)时,JsonProvider 无法正确解组接收到的数据,因为它没有意识到属性值是属性(而是将它们视为元素)。

在cxf 错误跟踪器的issue 3475中,此问题被确认并标记为已解决,因为它是一个需要在接收端处理的问题。有人提到使用 Jsonprovider 的转换功能,但我似乎无法让它工作。

我尝试在 beans.xml 中配置转换,其中包含以下几种变体:

<property name="inTransformElements">
   <map>
      <entry key="fieldname" value="@fieldname"/>
      <entry key="fieldname" value="{@}fieldname"/> 
   </map>
</property>

但没有成功。

cxf JsonProvider 是否可以将元素转换回属性?如果是这样怎么办?

4

1 回答 1

0

只是为了理解这个问题,

上面显示的 XML 是输出

<property name="inTransformElements">
   <map>
      <entry key="fieldname" value="@fieldname"/>
      <entry key="fieldname" value="{@}fieldname"/> 
   </map>
</property>

您是否尝试过最新版本的 CXF?

于 2013-05-18T12:51:35.780 回答