我使用Jersey 1.17.1和Jackson 2.2.1。
杰克逊似乎将包从org.codehaus
切换到com.fasterxml
。我已正确配置所有代码并使用最新的jackson。然而,看起来泽西仍然在进入org.codehaus.jackson
。有什么方法可以缓解这种情况,还是应该坚持使用codehaus
包,直到泽西升级为使用fasterxml
包裹?
答案 0 :(得分:24)
旧的杰克逊图书馆作为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提供程序。如果您需要那些,那么您必须手动找到并添加依赖项。