提问者:小点点

泽西杰克逊和codehaus vs. fasterxml


我正在使用泽西1.17.1和杰克逊2.2.1。

似乎Jackson将包从org. codehaus切换到com.fasterxml。我已经正确配置了所有代码并使用了最新的jackson。然而,似乎泽西仍然在使用org.codehaus.jackson。有什么方法可以缓解这种情况,或者我应该坚持使用codehaus包,直到jersey升级为使用fasterxml包?


共1个答案

匿名用户

较旧的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类有链接时间依赖,因此您不能简单地使用排除项。相反,您想要做的是完全省略它。它实际上是一种围绕一堆您不一定需要的JSON库的包装库。一旦删除,您可以为Jackson 2.2.1库和JAXRS提供程序添加依赖项:

<dependency>
    <groupId>com.fasterxml.jackson.jaxrs</groupId>
    <artifactId>jackson-jaxrs-json-provider</artifactId>
    <version>2.2.1</version>
</dependency>

请注意,删除jersey-json后,您不再拥有Stax2、Jettison或JAXB提供程序。如果您需要它们,那么您必须手动找到并添加它们的依赖项。