Java 错误-JSON进入无限循环

Java 错误-JSON进入无限循环,java,json,spring-mvc,jackson,fasterxml,Java,Json,Spring Mvc,Jackson,Fasterxml,我试图显示JSON数据,因为我使用的是FasterXMLJackson。我可以显示JSON,但JSON正在进入无限循环,在日志文件中,我得到了错误信息 错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[default host]./EAD].[spring]] (http--127.0.0.1-8080-1)Servlet的Servlet.service() 异常:java.lang.ClassNotFoundException: c

我试图显示JSON数据,因为我使用的是FasterXMLJackson。我可以显示JSON,但JSON正在进入无限循环,在日志文件中,我得到了错误信息

错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[default host]./EAD].[spring]] (http--127.0.0.1-8080-1)Servlet的Servlet.service() 异常:java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.JsonMappingException$Reference from [来自服务模块加载器的模块“deployment.EAD.war:main]

这是我的控制器方法

@RequestMapping("/viewDashboard")
@ResponseBody
public ModelMap test(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, @RequestParam String name) {

    ModelMap modelMap = new ModelMap();
    List<Instances> instances = viewDashboardServiceImpl.viewDashboard();
    return modelMap.addAllAttributes(instances);

}
这是我的Application.java

    @Id
@GeneratedValue
@Column(name = "appId")
private long id;

@Column(name = "name")
private String name;

@Column(name = "ownerName")
private String ownerName;

@Column(name = "version")
private String version;

@OneToMany(mappedBy = "applications", targetEntity = Instances.class)
private Set<Instances> instances;
如上所述,JSON继续处理重复的数据。 我对maven也有以下依赖性

<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.4.5</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.4.5</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.4.5</version>
    </dependency>

com.fasterxml.jackson.core
杰克逊数据绑定
2.4.5
com.fasterxml.jackson.core
杰克逊核心
2.4.5
com.fasterxml.jackson.core
杰克逊注释
2.4.5
我还在servlet.xml中添加了以下代码片段

    <bean id="contentNegotiationManager"
    class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
    <property name="favorPathExtension" value="false" />
    <property name="favorParameter" value="true" />
    <property name="mediaTypes">
        <value>
            json=application/json
            xml=application/xml
        </value>
    </property>
</bean>

json=应用程序/json
xml=应用程序/xml

您有一个cyclycal依赖项。你必须用
@JsonIgnore
注释你的一些集合,如上所述,你有循环依赖关系,每个级别的数据都是可用的,这导致了无限。谢谢大家,是的,有循环依赖关系,它由@JsonIgnore@dambros添加注释(@JsonIgnore)后对于application和evironment.java中的变量私有集实例,循环得到了解决,新问题出现了,在json中,我只得到了记录。事实上,我在一个表中有3条记录,所有三条记录都在列表中,但在转换为JSON时,我只得到最后一条记录。{“实例”:{“id”:3,“instanceName”:“JAVA”,“应用程序”:{“id”:1,“name”:“SAP”,“ownerName”:“Mou”,“version”:“3.2.1abc”},“环境”:{“id”:1,“name”:“DEV1”,“ownerName”:“Mou”,“version”:“1.23.asd”},“version”:“2.3as”}
{"instances":{"id":2,"instanceName":"SAP BW DEV1","applications":{"id":1,"name":"SAP","ownerName":"Mou","version":"3.2.1abc","instances":[{"id":2,"instanceName":"SAP BW DEV1","applications":{"id":1,"name":"SAP","ownerName":"Mou","version":"3.2.1abc","instances":[{"id":2,"instanceName":"SAP BW DEV1","applications":{"id":1,"name":"SAP","ownerName":"Mou","version":"3.2.1abc","instances":[{"id":2,"instanceName":"SAP BW DEV1","applications":{"id":1,"name":"SAP","ownerName":"Mou","version":"3.2.1abc","instances":[{"id":2,"instanceName":"SAP BW DEV1","applications":{"id":1,"name":"SAP","ownerName":"Mou","version":"3.2.1abc","instances":[{"id":2,"instanceName":"SAP BW DEV1","applications":{"id":1,"name":"SAP","ownerName":"Mou","version":"3.2.1abc","instances":[{"id":2,"instanceName":"SAP BW DEV1","applications":
<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.4.5</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.4.5</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.4.5</version>
    </dependency>
    <bean id="contentNegotiationManager"
    class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
    <property name="favorPathExtension" value="false" />
    <property name="favorParameter" value="true" />
    <property name="mediaTypes">
        <value>
            json=application/json
            xml=application/xml
        </value>
    </property>
</bean>