私は JAX-RS Webservice を書いています。application/xml の形式で応答を返します。つまり、 CDATA セクションを生成する必要があります。私はたくさんの調査を行い、多くのブログを見てきました。しかし、私はまだそうすることができません。私は次のアプローチを試しました:
1) ここに記載されているように、独自の Jaxb2Marshaller を作成します: http://www.coderanch.com/t/584332/Web-Services/java/Spring-WS-JAXB-CDATA。そして、私は以下のように構成しました:
<bean id="marshaller" class="com.test.CdataJaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.test.MyModel</value>
</list>
</property>
<property name="cdataElements">
<list>
<value>Data</value>
</list>
</property>
</bean>
しかし、私は CdataJaxb2Marshaller のマーシャル メソッドで呼び出しを受けていません。マーシャラーを内または他の場所で構成したのではないかと思っています。誰かが提案できますか。
2) 私が試した 2 番目のアプローチは、次のとおりです。しかし、次のように構成しようとした内部で CdataWriterInterceptor を構成する方法については説明しません。
3)私が試した3番目のアプローチは2番目のアプローチと非常に似ていますが、インターセプターの代わりにプロバイダーを構成したという違いがあります。
eclipse link Moxy のようなサードパーティのものを使用したくありません。残念ながら、JAXB は CDATA セクションをネイティブにサポートしていません。誰かがこの問題に対する答えを持っていれば、それは大きな助けになるでしょう。
ありがとう、アマン。