【问题标题】:Adding jackson-core-asl to maven dependencies causes ClassNotFoundException将 jackson-core-asl 添加到 maven 依赖项会导致 ClassNotFoundException
【发布时间】: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


【解决方案1】:

我认为您应该迁移到“com.fasterxml.jackson.core”杰克逊。

查看 Maven cetral 上的软件包: http://search.maven.org/#search|ga|1|com.fasterxml.jackson.core

看起来 Jackson 项目更改了基础包。我的工作区中有 Spring Boot (1.1.8) 项目,它使用 Jackson 和这个新的基础包。

【讨论】:

    猜你喜欢
    • 2017-05-22
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多