我在地图中遇到了带有空值的杰克逊序列化问题。显然,这是Wildfly 9(https://issues.jboss.org/browse/WFLY-4906)使用的Jackson版本中的已知错误。我想使用当前版本的杰克逊;但是,我在排除Wildfly使用的版本时遇到了麻烦。我尝试在jboss-deployment-structure.xml
中排除该模块,但排除不起作用。
知道如何才能让它发挥作用吗?
答案 0 :(得分:19)
我自己也遇到了这个问题。
在我的应用程序中升级库后,我在请求时收到以下错误:
Exception handling request to /path: java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonParser.hasToken(Lcom/fasterxml/jackson/core/JsonToken;)
以下是我解决问题的方法:
我显然不得不排除wildfly-9提供的jackson-core-2.5.1
。
我列出了所有依赖于'jackson-core'和/opt/wildfly/modules# grep -R 'jackson-core'
然后我在jboss-deployment-structure.xml
文件夹中创建了WEB-INF
:
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="com.fasterxml.jackson.core.jackson-core" />
<module name="com.fasterxml.jackson.core.jackson-databind" />
<module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
<module name="org.jboss.resteasy.resteasy-jackson2-provider" />
</exclusions>
</deployment>
</jboss-deployment-structure>
答案 1 :(得分:3)
我有类似的问题。我不得不排除整个jax-rs subsytem
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclude-subsystems>
<subsystem name="jaxrs" />
</exclude-subsystems>
...
</deployment>
之后我才能使用我的杰克逊版本。