我正在使用泽西1.17.1和杰克逊2.2.1。
似乎Jackson将包从org. codehaus
切换到com.fasterxml
。我已经正确配置了所有代码并使用了最新的jackson。然而,似乎泽西仍然在使用org.codehaus.jackson
。有什么方法可以缓解这种情况,或者我应该坚持使用codehaus
包,直到jersey升级为使用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类有链接时间依赖,因此您不能简单地使用排除项。相反,您想要做的是完全省略它。它实际上是一种围绕一堆您不一定需要的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提供程序。如果您需要它们,那么您必须手动找到并添加它们的依赖项。