我一直在研究的项目的一部分需要将对象序列化为JSON并将它们传递给用户。我们将使用杰克逊图书馆来做到这一点。以前我使用的是2.2.3版本,这很简单,但我的经理想要切换回1.9.12版本。不应该是一个问题,1.9.12支持我们需要的一切,但只是将依赖项添加到项目会导致它基本上崩溃。
我们添加的依赖项:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.12</version>
</dependency>
该项目建立得很好。但是,运行服务器会导致它抛出:
java.lang.ClassNotFoundException: org.codehaus.jackson.JsonGenerationException
然后是大约一页信息,如果需要我可以提供。试图加载一个网页(以前工作)导致它生成一个充满错误的5MB日志文件,而页面本身加载的一些页面实体出错了。
快速检查已编译的.war文件,显示jackson-mapper-asl.jar不包含JsonGenerationException.class,但是jackson-core-asl.jar(我相信它是作为jackson-mapper-asl依赖项,因为它没有在依赖项中列出)。
我已经注释掉了所有依赖于Jackson的代码,因此我的代码中不会以任何方式使用这些库。我怀疑是Spring正在尝试为其中一个servlet创建一个JSON映射器并且以某种方式崩溃。但是,我不确定为什么它找不到依赖。
答案 0 :(得分:0)
我认为你应该转向&#34; com.fasterxml.jackson.core&#34;杰克逊。
查看Maven cetral上的软件包: http://search.maven.org/#search|ga|1|com.fasterxml.jackson.core
看起来杰克逊项目改变了基础包。我的工作空间中有Spring Boot(1.1.8)项目,它使用Jackson和这个新的基础包。