2

JPAを利用してPostgreSQLデータベースとやり取りし、TomEEで実行するREST Webサービスを備えた非常に単純なWebアプリを設計しています。私の JPA エンティティには双方向のマッピングがあり、REST サービスでこれらの JPA エンティティを XML および JSON として消費/生成したいと考えています。

シリアライゼーション中の無限ループを防ぐために、各双方向マッピングの片側で @XmlTransient アノテーションを使用しているため、XML シリアライゼーションは正常に機能します。

残念ながら、JSON シリアライズ中に無限ループに入り、StackOverflowError が生成されます。TomEE は Apache CXF を使用するため、Jettison も使用すると想定し、Jettison は @XmlTransient アノテーションを尊重すると考えました。

ただし、TomEE は実際には Johnzon を使用しているようで、@XmlTransient アノテーションを尊重していないようです。特定のフィールドを無視するように Johnzon に指示するにはどうすればよいですか? JSON-B 仕様の @JsonbTransient アノテーションを使用できますか? Johnzon にリンクしたくないのですが、@JohnzonIgnore アノテーションを効果なく使用するためにリンクを試みました。TomEE に Jettison の使用を強制したほうがよいでしょうか? 助言がありますか?

TomEE が Web サイトhttp://tomee.apache.org/examples-trunk/rest-example/README.htmlに投稿した rest-example にも同じ問題があるため、このバグを自分で再現できます。

4

0 に答える 0