Я пытаюсь отобразить данные JSON, для этого я использую fastxml jackson. Я могу отображать JSON, но JSON переходит в бесконечный цикл, и в файле журнала я получаю сообщение об ошибке
ОШИБКА [org.apache.catalina.core.ContainerBase.[jboss.web].[host-host].[/EAD].[spring]] (http--127.0.0.1-8080-1) Servlet.service() для сервлета Spring выдал исключение: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.JsonMappingException$Reference from [Module "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);
}
На самом деле мой Instance.java имеет отношение к Application.java и Environment.java.
Ниже приведены мои model.java
Вот мой экземпляр .java
@Id
@GeneratedValue
@Column(name = "instanceId")
private long id;
@Column(name = "name")
private String instanceName;
@ManyToOne
@JoinColumn(name = "appId")
private Applications applications;
@ManyToOne
@JoinColumn(name = "enviId")
private Environments environments;
@Column(name = "version")
private String version;
Вот мой 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;
Вот моя среда.java
@Id
@GeneratedValue
@Column(name = "enviId")
private long id;
@Column(name = "name")
private String name;
@Column(name = "ownerName")
private String ownerName;
@Column(name = "version")
private String version;
@OneToMany(mappedBy = "environments", targetEntity = Instances.class)
private Set<Instances> instances;
Вот мой JSON
{"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":
Как и выше, 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>
И я также добавил следующий фрагмент в 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>
@JsonIgnore
- person dambros   schedule 14.04.2016