在迁移一些其余 Controller 后,我们已从 Jboss 6 迁移到 JBoss 7,同时发送 Json 时出现以下错误:
引起:com.fasterxml.jackson.databind.JsonMappingException:直接自引用导致循环(通过引用链:java.util.ArrayList[0]->com.listgroup.ready.service.config.Domain[ “class1”]->java.util.Collections$UnmodifyingRandomAccessList[0]->com.listgroup.ready.service.config.Table[“class2”]->java.util.Collections$UnmodifyingRandomAccessList[0]->com. listgroup.ready.service.config.Column["class3"]->com.listgroup.骨骼.FieldType["class4"]->com.listgroup.骨骼.FieldType["class4"]) 在 com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:284) 在 com.fasterxml.jackson.databind.SerializerProvider.mappingException(SerializerProvider.java:1110) 在com.fasterxml.jackson.databind.SerializerProvider.reportMappingProblem(SerializerProvider.java:1135) 在 com.fasterxml.jackson.databind.ser.BeanPropertyWriter._handleSelfReference(BeanPropertyWriter.java:921)
这也不会为 tomcat 复制。
最佳答案
我从日志中发现Jboss正在使用自己的库而不是WEB-INF/lib库。
为了避免这种情况,我在 WEB-INF 中添加了 jboss-deployment-struct.xml 文件。 jboss-deployment-struct.xml 文件的内容是:
<?xml version='1.0' encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="com.fasterxml.jackson.core.jackson-databind" />
<module name="com.fasterxml.jackson.core.jackson-annotations" />
<module name="com.fasterxml.jackson.core.jackson-core" />
<module name="com.fasterxml.jackson.datatype.jackson-datatype-jdk8" />
<module name="com.fasterxml.jackson.datatype.jackson-datatype-jsr310" />
<module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
<module name="org.jboss.resteasy.resteasy-jackson2-provider" />
<!-- end of logger service exclusions -->
</exclusions>
</deployment>
</jboss-deployment-structure>
关于java - Jboss 7.1 中的 com.fasterxml.jackson.databind.JsonMappingException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59169630/