杰西·杰克逊和Codehaus对比Fasterxml

28

我正在使用Jersey 1.17.1和Jackson 2.2.1。

看起来Jackson从org.codehaus切换到了com.fasterxml包。我已经正确配置了我的所有代码并使用了最新的jackson。然而,似乎Jersey仍在引用org.codehaus.jackson。有没有办法缓解这个问题或者我应该继续使用codehaus包直到Jersey升级为使用fasterxml包?

1个回答

31
旧版的Jackson库被作为jersey-json工件的依赖项引入。当…
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.17</version>
</dependency>

如果在您的POM中包含了所需的依赖,您的项目中将自动获取org.codehaus.jackson库的版本。不幸的是,jersey-json本身在链接时依赖于Jackson类,因此您不能简单地使用exclusions。相反,您需要完全省略它。它实际上是一种包装器库,围绕一堆您不一定需要的JSON库。一旦删除,您可以添加对Jackson 2.2.1库和JAX-RS提供程序的依赖项:
<dependency>
    <groupId>com.fasterxml.jackson.jaxrs</groupId>
    <artifactId>jackson-jaxrs-json-provider</artifactId>
    <version>2.2.1</version>
</dependency>

请注意,如果移除jersey-json,您将不再拥有Stax2、Jettison或JAXB提供程序。如果需要这些功能,则需要手动查找并添加依赖项。

3
从Jackson 2.2版本开始,代码位置在https://github.com/FasterXML/jackson-jaxrs-providers/blob/master/json/pom.xml。 - koppor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接