9

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

jboss-部署-结构.xml

知道我怎样才能让它工作吗?

4

2 回答 2

26

我自己也遇到了这个问题。

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

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

这是我解决它的方法:

我显然不得不排除jackson-core-2.5.1wildfly-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>
于 2016-12-12T15:07:46.863 回答
6

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

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
    <exclude-subsystems>
        <subsystem name="jaxrs" />
    </exclude-subsystems>
    ...
</deployment>

之后我就可以使用我的杰克逊版本了。

于 2016-06-16T12:43:24.463 回答