2016-11-04 129 views
0

我知道有很多simiar错误已经存在 - 并相信我,我尝试了大多数 - 但我根本无法解决此问题我这边。通常我使用挂毯和resteasy来提供REST服务。 Hibernate是我的坚持框架。我有一个Java对象“Obj1”和另一个Java对象“用户”。用户可以根据自己的一些OBJ1的,所以我有OBJ1在用户下面的映射:for org.codehaus.jackson.map.JsonMappingException的解决方案:无限递归(StackOverflowError)

@OneToMany(cascade = CascadeType.ALL, mappedBy = "owner") 
private Set<obj1> obj1s; 

而在另一边(在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) 

到集合属性,但仍具有同样的效果。当然,最明显的事情是使用@JsonIgnore,在第一个链接和here上找到,但这也不起作用。现在我想这个问题可能在其他地方,也许我的依赖不正确......但是,我正在使用com.fasterxml.jackson -import(因为这是在一些帖子中建议的)。我的聚甲醛的有关条文是:

<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服务来回应它们,并且不要将它与我的对象混合以实现持久性。但我一定会知道如何解决这个问题...

回答

0

我想是因为导入是错误的。它应该是

org.codehaus.jackson