Wildfly 10 - 如何将更新版本的 jackson 用于应用程序

Wildfly 10 - How to use a newer version of jackson for an aplication

我在 wildfly 10 上有一个应用程序 运行,它需要更新版本的 jackson。简单地更新 Maven 依赖项是行不通的。 Wildflys 自己的版本似乎干扰...

有人有提示吗?

您可以将更新版本的 Jackson 添加到您的 war 并使用它,但容器 (Resteasy) 的 JAX-RS 子系统仍将使用它自己的 jackson 模块来(反)序列化您的 HTTP request/response 尸体。

您可以添加一个具有较新版本的模块,但您可能 运行 陷入与其他模块的依赖性问题(参见 this pull request 已经被接受,因此它应该在下一个版本中,但我不知道任何计划的 Wildfly 发布日期)。

或者您可以打包您自己的 Jackson 版本并注册那些 MessageBodyReaders/Writers 以供 JAX-RS 使用。这应该可以完成工作。

@Provider
public class CustomJacksonJsonProvider extends JacksonJsonProvider {}

您可能还必须通过添加 jboss-deployment-structure.xml:

来排除内置 Jackson
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="org.jboss.resteasy.resteasy-jackson-provider" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>