Wildfly 9 - 如何排除杰克逊

use*_*642 7 jackson wildfly-9

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

JBoss的部署,structure.xml

知道我怎么能让这个工作吗?

Mar*_*rty 19

我自己也遇到过这个问题.

在我的应用程序中升级库后,我收到了以下错误请求:

Exception handling request to /path: java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonParser.hasToken(Lcom/fasterxml/jackson/core/JsonToken;)
Run Code Online (Sandbox Code Playgroud)

这是我解决它的方式:

我显然不得不排除jackson-core-2.5.1野生蝇9提供的.

我列出了所有依赖于'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>
Run Code Online (Sandbox Code Playgroud)

  • 你解决了我的一生。说真的 您解决了。谢谢! (2认同)

pod*_*mak 9

我有类似的问题。我必须排除整个 jax-rs 子系统

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
    <exclude-subsystems>
        <subsystem name="jaxrs" />
    </exclude-subsystems>
    ...
</deployment>
Run Code Online (Sandbox Code Playgroud)

之后我就可以使用我的 Jackson 版本了。