Wildfly 9 - 如何排除杰克逊

时间:2016-05-05 21:07:34

标签: jackson wildfly-9

我在地图中遇到了带有空值的杰克逊序列化问题。显然,这是Wildfly 9(https://issues.jboss.org/browse/WFLY-4906)使用的Jackson版本中的已知错误。我想使用当前版本的杰克逊;但是,我在排除Wildfly使用的版本时遇到了麻烦。我尝试在jboss-deployment-structure.xml中排除该模块,但排除不起作用。

jboss-deployment-structure.xml

知道如何才能让它发挥作用吗?

2 个答案:

答案 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>

之后我才能使用我的杰克逊版本。