私は既にそこにsimiarエラーがたくさんあることを知っています - そして私を信じて、私は最も試しましたが、私の側。一般的に私はRESTサービスを提供するためにタペストリーとresteasyを使用しています。休止状態は私の持続性の枠組みです。私は1つのJavaオブジェクト "Obj1"と別のJavaオブジェクト "User"を持っています。 (Obj1とで)org.codehaus.jackson.map.JsonMappingExceptionの解決策:無限再帰(StackOverflowError)
@OneToMany(cascade = CascadeType.ALL, mappedBy = "owner")
private Set<obj1> obj1s;
他方側の::ユーザーは、いくつかのObj1との所有することができますので、私はユーザーで、OBJ1のための次のマッピングを持って
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "owner", referencedColumnName = "guid")
private User owner;
だからユーザーは、いくつかのObj1との所有しています、 obj1はそれが所有者であることを認識しています。これは私に例外
org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
<<omitted>>
Caused by: org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError)
を与える私はthis websiteとthatを発見し、私は保存だと思った...私は(私も、私はちょうど注釈付きかどうかを確認するために、それらをひっくり返し両側に@JsonManagedReference、@JsonBackReferenceのことをやってみました@ JsonManagedReferenceの間違った側)でも同じ例外があります。また、私は両側(see here)に追加されませんが、まだ何も(GUIDは、両方のオブジェクトのプロパティです)
を見つけました。私はその後、thisを発見し、コレクションプロパティに
@JsonIdentityReference(alwaysAsId = true)
を追加しましたが、それでも同じ効果を持ちます。もちろん、最も明白なのは、最初のリンクにある@JsonIgnore
とhereを使用することでしたが、これはうまくいきませんでした。今は問題が別の場所にあるかもしれないと思っていますが、おそらく私の依存関係は正しくないかもしれません...しかし、私はcom.fasterxml.jackson
-importを使っていました(これはいくつかの記事で示唆されています)。私のpomの関連セクションは次のとおりです:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jsapi</artifactId>
<version>3.0.19.Final</version>
</dependency>
<dependency>
<groupId>com.wordnik</groupId>
<artifactId>swagger-jaxrs_2.10</artifactId>
<version>1.3.0</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>2.3.4.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>3.0.4.Final</version>
</dependency>
<dependency>
<groupId>org.tynamo</groupId>
<artifactId>tapestry-resteasy</artifactId>
<version>0.4.0</version>
</dependency>
だから私はまだ何か別のヒントを教えてもらえますか?もちろん、私はRESTサービスを介してそれらをreturingするためだけに別のオブジェクトを実装することができ、永続性のために私のオブジェクトと混同しないでください。しかし、私はこの問題をどのように修正できるのかよく分かっています...