java.lang.NoClassDefFoundError:com.fasterxml.jackson.databind.ObjectMapper

问题描述 投票:0回答:2

项目中spring版本从3.x升级到5.x。该项目已经拥有来自 org.codehaus.jackson.map.ObjectMapper(1.9.11) 和 com.fasterxml.jackson.data-bind.ObjectMapper(2.11.0) 的 objectmapper,两者都已使用并处于 spring 版本(3.0) 的工作状态。 X)。 Eclipselink是当前使用的jpa实现。 将spring版本升级到5.x后,出现以下错误: 内部异常:java.lang.NoClassDefFoundError:com.fasterxml.jackson.databind.ObjectMapper

是否存在依赖冲突?如果是这样,为什么它在春季旧版本中有效?在线文档说 org.codehaus.jackson.map.ObjectMapper 已被 jackson-data binder 取代。但如果是这样,应该抛出与 org.codehaus.jackson.map.ObjectMapper 相关的 classNotFound 异常,对吗? 请帮忙解决这个问题

java spring exception jackson objectmapper
2个回答
0
投票

Spring 5及以上版本会出现版本问题。

从上面的异常可以明显看出,该异常的根本原因是缺少类 InvalidDefinitionException。 自 2.9.0 版本起,该类已在 jackson databind API 中引入。

要解决此问题,只需添加版本 2.9.0 或更高版本的 jackson databind 依赖项

<dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-databind</artifactId>
       <version>2.9.0</version>
</dependency>

0
投票

不正确的类路径:即使包含依赖项,也要确保包含 ObjectMapper 的 JAR 文件位于类路径上。这通常会通过构建工具自动发生,但请仔细检查您是否手动管理类路径。

我能够通过更改模块信息文件来解决此错误。我注意到,我使用关键字 require static 导入了 jackson。

它应该仅使用“requires”导入

© www.soinside.com 2019 - 2024. All rights reserved.