0

JSONとXMLの両方でデータを送受信するCXFを使用してRESTサービスを構築しています

JSON バージョンでは、属性に「@」表記を使用してクライアントに迷惑をかけたくありません。また、JsonProvider (org.apache.cxf.jaxrs.provider.json.JSONProvider) で「attributesToElements」パラメーターを使用して、これらを送信しないようにします。そのようにクライアントに属性を与えます。

ただし、データを受信すると (同じ形式)、JsonProvider は受信したデータを正しく UnMarshall できません。これは、属性値が属性であることを認識していないため (代わりにそれらを要素として扱うため)。

cxf バグ トラッカーの問題 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 に答える