我将 Jersey 1.17.1 与 Jackson 2.2.1 一起使用。
似乎杰克逊将软件包org.codehaus
从com.fasterxml
. 我已正确配置所有代码并使用最新的杰克逊。然而,泽西岛似乎仍在拉动org.codehaus.jackson
。有什么办法可以缓解这种情况,还是我应该坚持使用这些codehaus
软件包,直到球衣升级为使用这些fasterxml
软件包?
较旧的 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 类具有链接时间依赖性,因此您不能简单地使用excludes。你想要做的是完全省略它。它实际上是一种围绕一堆您不一定需要的 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 提供程序。如果您需要这些,则必须手动查找并添加它们的依赖项。