我正在使用REST Web服务设计一个非常简单的Web应用程序,该服务利用JPA与PostgreSQL数据库进行交互并在TomEE中运行。我的JPA实体具有双向映射,我希望我的REST服务以XML和JSON的形式使用/生成这些JPA实体。
XML序列化工作正常,因为我在每个双向映射的一侧使用@XmlTransient注释,以防止在序列化过程中出现无限循环。
不幸的是,在JSON序列化期间,我输入了一个无限循环,并生成了StackOverflowError。我认为既然TomEE使用Apache CXF,它也会使用Jettison,我认为Jettison尊重@XmlTransient注释。
然而,看起来TomEE实际上正在使用Johnzon,而且似乎并不尊重@XmlTransient注释。我如何告诉Johnzon忽略某些字段?我可以以某种方式使用JSON-B规范中的@JsonbTransient注释吗?我不想与Johnzon联系,但我试过这个以便使用@JohnzonIgnore注释而没有效果。我最好强迫TomEE使用Jettison吗?有什么建议吗?
您可以自己重现此错误,因为TomEE在其网站上发布的其余示例具有相同的问题http://tomee.apache.org/examples-trunk/rest-example/README.html。