You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring MVC引入jackson后报InvalidDefinitionException类找不到异常如何解决

异常原因及解决方案

核心根因

java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException由依赖版本不兼容/不匹配导致:

  • InvalidDefinitionException是Jackson 2.9.0及以上版本才新增的异常类,当引入的Jackson版本过低、Spring MVC与Jackson版本不兼容、Jackson多个子包版本不一致时,都会触发类找不到的异常。

具体解决步骤

  1. 确认Spring MVC版本对应的Jackson兼容范围:
  • Spring 5.x及以上:要求Jackson 2.9+,推荐使用2.10.x、2.13.x等稳定版本
  • Spring 4.3.x:最高支持Jackson 2.9.x,禁止使用2.10及以上版本
  • Spring 4.2.x及更低:建议使用Jackson 2.8.x版本
  1. 统一Jackson核心依赖版本
    必须保证jackson-core、jackson-databind、jackson-annotations三个核心包的版本完全一致,禁止跨版本混用。
    如果使用Maven管理依赖,参考配置如下(版本根据Spring版本调整):
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.10</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.10</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.10</version>
</dependency>

如果是手动导入jar包的动态Web项目,需要同时导入上述三个同版本的jar包,不能仅导入jackson-core和jackson-databind。

  1. 排查依赖冲突
    如果项目中存在其他第三方依赖内置了不同版本的Jackson包,需要统一排除冲突/低版本的Jackson依赖,避免版本覆盖。

验证操作

调整依赖后,清理项目编译缓存(Maven执行mvn clean install,IDE执行Rebuild Project)后重新启动即可解决DispatcherServlet初始化异常。

内容的提问来源于stack exchange,提问作者A_Name

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:39:01