【发布时间】:2015-01-03 04:36:29
【问题描述】:
我一直在从事的部分项目需要将对象序列化为 JSON 并将它们传递给用户。我们将使用 Jackson 库来执行此操作。以前我使用的是 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 映射器并且以某种方式崩溃。但是,我不确定为什么它找不到依赖项。
【问题讨论】:
-
你有没有做一个 mvm:dependency 树来检查另一个库是否将 jackson 作为传递依赖引入?
-
它似乎只被拉到那个地方。 webapp 引入 jackson-mapper-asl,后者引入 jackson-core-asl。
标签: java json maven spring-mvc jackson