我将我的xwiki更新为8.2.1版本。之后,每当我尝试上传XAR时,我都会得到一个StackOverflowError。有人知道这是从哪里来的吗?
14:39:05.955 [https://localhost/ xwiki /bin/get/XWiki/XWikiPreferences?xpage=packagedescriptor&package=org.xwiki.platform_xwiki-platform-administration-ui-8.2.1.xar] ERROR org.xwiki.velocity.tools.JSONTool - Failed to serialize object to JSON
com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: java.util.UnmodifiableList[0]->org.xwiki.model.reference.EntityReference["reversedReferenceChain"]->java.util.UnmodifiableList[0]->org.xwiki.model.reference.EntityReference["reversedReferenceChain"]->java.util.UnmodifiableList[0]->org.xwiki.model.reference.EntityReference["reversedReferenceChain"]->java.util.UnmodifiableList[0]->org.xwiki.model.reference.EntityReference["reversedReferenceChain"]->java.util.UnmodifiableList[0]->org.xwiki.model.reference.EntityReference["reversedReferenceChain"]->java.util.UnmodifiableList[0]->org.xwiki.model.reference.EntityReference["reversedReferenceChain"]->[…])
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:677) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:132) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:94) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:663) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:132) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:94) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:663) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:132) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:94) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:663) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:132) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:94) ~[jackson-databind-2.5.0.jar:2.5.0]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[jackson-databind-2.5.0.jar:2.5.0]
[…]
14:39:05.968 [https://localhost/xwiki/bin/get/XWiki/XWikiPreferences?xpage=packagedescriptor&package=org.xwiki.platform_xwiki-platform-administration-ui-8.2.1.xar] DEBUG o.x.v.internal.DefaultVelocityEngine - Null reference [template '76:/templates/packagedescriptor.vm', line 36, column 4] : $jsontool.serialize($json) cannot be resolved.发布于 2016-10-03 07:01:31
这个错误似乎表明,杰克逊的版本比在XWiki WAR中应该提供的版本要早。它不支持@瞬态,用于跳过EntityReference#getReversedReferenceChain()的序列化。
也许您的应用服务器带来了一个旧版本的Jackson,您需要正确地隔离XWiki。
https://stackoverflow.com/questions/39791880
复制相似问题