2016-11-04 20 views
0

私は既にそこに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 websitethatを発見し、私は保存だと思った...私は(私も、私はちょうど注釈付きかどうかを確認するために、それらをひっくり返し両側に@JsonManagedReference、@JsonBackReferenceのことをやってみました@ JsonManagedReferenceの間違った側)でも同じ例外があります。また、私は両側(see here)に追加されませんが、まだ何も(GUIDは、両方のオブジェクトのプロパティです)

​​

を見つけました。私はその後、thisを発見し、コレクションプロパティに

@JsonIdentityReference(alwaysAsId = true) 

を追加しましたが、それでも同じ効果を持ちます。もちろん、最も明白なのは、最初のリンクにある@JsonIgnorehereを使用することでしたが、これはうまくいきませんでした。今は問題が別の場所にあるかもしれないと思っていますが、おそらく私の依存関係は正しくないかもしれません...しかし、私は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するためだけに別のオブジェクトを実装することができ、永続性のために私のオブジェクトと混同しないでください。しかし、私はこの問題をどのように修正できるのかよく分かっています...

答えて

0

私はインポートが間違っていたと思います。それはあったはずです

org.codehaus.jackson