带SpringRoo的json无限递归

带SpringRoo的json无限递归,json,spring-roo,Json,Spring Roo,我正在使用SpringRoo1.2.1和Jackson 1.9.7。 在使用json序列化我的类时,我得到一个JsonMappingException 我阅读了以下帖子,但没有找到适合我的解决方案: 我不知道为什么JsonIgnore没有在属性queueout的类队列中工作。我还尝试了JsonManagedReference,但出现了相同的错误。使用Jackson 2.0.0不是解决方案,因为Spring 3.1不支持它 有什么建议吗 这里是我的stacktrace的一部分: Caused by

我正在使用SpringRoo1.2.1和Jackson 1.9.7。 在使用json序列化我的类时,我得到一个JsonMappingException

我阅读了以下帖子,但没有找到适合我的解决方案:

我不知道为什么JsonIgnore没有在属性queueout的类队列中工作。我还尝试了JsonManagedReference,但出现了相同的错误。使用Jackson 2.0.0不是解决方案,因为Spring 3.1不支持它

有什么建议吗

这里是我的stacktrace的一部分:

Caused by: org.springframework.amqp.support.converter.MessageConversionException: Failed to convert Message content
  at org.springframework.amqp.support.converter.JsonMessageConverter.createMessage(JsonMessageConverter.java:181)
  at org.springframework.amqp.support.converter.AbstractMessageConverter.toMessage(AbstractMessageConverter.java:51)
  at org.springframework.amqp.rabbit.core.RabbitTemplate.convertMessageIfNecessary(RabbitTemplate.java:482)
  at org.springframework.amqp.rabbit.core.RabbitTemplate.convertAndSend(RabbitTemplate.java:358)
  at org.springframework.amqp.rabbit.core.RabbitTemplate.convertAndSend(RabbitTemplate.java:346)
  at de.company.prs.admin.server.amqp.AdminQueueConsumer.onMessage(AdminQueueConsumer.java:52)
  at org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:328)
  at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:505)
  ... 10 more
 Caused by: org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: de.company.prs.admin.server.domain.Queue["queueOuts"]->org.hibernate.collection.PersistentSet[0]->de.company.prs.admin.server.domain.QueueOut["queue"]->de.company.prs.admin.server.domain.Queue["queueOuts"]->org.hibernate.collection.PersistentSet[0]->de.company.prs.admin.server.domain.QueueOut["queue"]->de.company.prs.admin.server.domain.Queue["queueOuts"]->org.hibernate.collection.PersistentSet[0]->de.company.prs.admin.server.domain.QueueOut["queue"]->de.company.prs.admin.server.domain.Queue["queueOuts"]->org.hibernate.collection.PersistentSet[0]->de.company.prs.admin.server.domain.QueueOut["queue"]->de.company.prs.admin.server.domain.Queue["queueOuts"]->org.hibernate.collection.PersistentSet[0]->de.company.prs.admin.server.domain.QueueOut["queue"]->de.company.prs.admin.server.domain.Queue["queueOuts"]->org.hibernate.collection.PersistentSet[0]->de.company.prs.admin.server.domain.QueueOut["queue"]->de.company.prs.admin.server.domain.Queue["queueOuts"]->org.hibernate.collection.PersistentSet[0]->de.company.prs.admin.server.domain.QueueOut["queue"]->de.company.prs.admin.server.domain.Queue["queueOuts"]->org.hibernate.collection.PersistentSet[0]
  at org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:164)
  at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:112)
  at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:446)
  at org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:150)
  at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:112)
以下是我的课程: 首先

@爪哇豆 @生根 公共类排队{ 私有字符串名称; 私有字符串描述; @杰索尼奥雷 @许多酮 专用GenericQueue GenericQueue; @manytone fetch=FetchType.EAGER 专用队列; } 第二

@爪哇豆 @生根 @RooJPA活动记录 公共类队列{ 私有字符串名称; 私有字符串描述; @杰索尼奥雷 @OneToManycascade=CascadeType.ALL,mappedBy=queue,fetch=FetchType.EAGER private Set QueueOuts=新哈希集; }
您必须在getter上使用@JsonIgnore

您必须在getter上使用@JsonIgnore

在getter od上使用@JsonIgnore完全忽略使用@JsonIgnorePropertiesvalue={propertyName}的属性

在getter od上使用@JsonIgnore完全忽略使用@JsonIgnorePropertiesvalue={propertyName}的属性

不要使用JsonIgnore,从1.9开始,在有问题属性的getter上使用JsonManagedReference和JsonBackReference。您可以在以下位置看到两个很好的示例:


不要使用JsonIgnore,从1.9开始,在有问题属性的getter上使用JsonManagedReference和JsonBackReference。您可以在以下位置看到两个很好的示例: