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 で要素を属性に戻すことは可能ですか? もしそうなら、どのように?