Уже который день не могу понять почему вылетает следующая ошибка. Решения то есть, но как-то странно, перепробовал, и не работает. Даже нонсенс - на одном комп такая конфигурация работает на ура, на другом нет. Суть: У одного объекта есть список с другими объектами. Хочу чтоб другой объект сохранял в себе ссылку на объект родителя. Нуу из аннотаций в теме все понятно. Последовательность вызовов | Код | 1. @RequestMapping(value = "id/{participantId}/module/{module}/objective", method = RequestMethod.POST) - OK 2. @RequestMapping(value = "id/{participantId}/module/{module}/objectives", method = RequestMethod.GET) - OK 3. @RequestMapping(value = "id/{participantId}/module/{module}/objective/{objectiveId}/action", method = RequestMethod.POST) - OK 4. @RequestMapping(value = "id/{participantId}/module/{module}/objectives", method = RequestMethod.GET) - ERROR
|
Вот как выглядят entities сейчас(Этот вариант прекрасно работает на одном комп, на другом нет). | Код | @Entity @Data public class Objective implements Serializable {
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "objective_id") private Long id;
..............................
/** * the actions of objective */ // @Cascade({CascadeType.ALL}) // @JsonManagedReference // @JsonBackReference // @JsonIgnore @OneToMany(mappedBy = "objective", fetch = FetchType.EAGER, orphanRemoval = true) private List<Action> actions;
..............................
}
|
| Код | @Entity @Data public class Action {
@Id @GeneratedValue(strategy = GenerationType.AUTO) private long id;
..............................
/** * objective of this action */ // @JsonBackReference // @JsonManagedReference @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "objective_id") @JsonIgnore private Objective objective;
..............................
}
|
Весь стек-трейс закинуть не могу(так как рекурсия), но вот часть. | Код | WARN 2014-05-01 18:00:01,201 [1403671073@qtp-164700615-0] o.s.w.s.m.s.DefaultHandlerExceptionResolver 'Handling of [org.springframework.http.converter.HttpMessageNotWritableException] resulted in Exc eption' java.lang.IllegalStateException: Committed at org.mortbay.jetty.Response.resetBuffer(Response.java:1023) ~[jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.Response.sendError(Response.java:240) ~[jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.Response.sendError(Response.java:342) ~[jetty-6.1.26.jar:6.1.26] at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.sendServerError(DefaultHandlerExceptionResolver.java:309) ~[spring-webmvc-3.2.4.RELEASE.jar:3.2.4.RELEASE] at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.handleHttpMessageNotWritable(DefaultHandlerExceptionResolver.java:366) ~[spring-webmvc-3.2.4.RELEASE.jar:3.2.4.RELEASE] at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.doResolveException(DefaultHandlerExceptionResolver.java:139) ~[spring-webmvc-3.2.4.RELEASE.jar:3.2.4.RELEASE] at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:136) [spring-webmvc-3.2.4.RELEASE.jar:3.2.4.RELEASE] at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1148) [spring-webmvc-3.2.4.RELEASE.jar:3.2.4.RELEASE] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:985) [spring-webmvc-3.2.4.RELEASE.jar:3.2.4.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) [spring-webmvc-3.2.4.RELEASE.jar:3.2.4.RELEASE] 2014-05-01 18:00:01.204:WARN::/welldoo-tk-service-objective/id/13/module/RELAX/objectives org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError) (through reference chain: com.service.objective.domain.objec tive.Objective["actions"]->org.hibernate.collection.internal.PersistentBag[0]->com.service.objective.domain.action.Action["objective"]->com.service.objective.domain.objective.Objec tive["actions"]->org.hibernate.collection.internal.PersistentBag[0]->com.service.objective.domain.action.Action["objective"]->com.service.objective.domain.objective.Objective["acti ons"]->org.hibernate.collection.internal.PersistentBag[0]
|
|