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

老旧项目集成SpringBoot开发REST接口时内置Tomcat启动失败

问题根因

启动失败的核心原因是Jackson依赖版本不兼容:
你使用的Spring Boot 2.4.0版本默认要求绑定2.11.x系列的Jackson版本,报错中缺失的com/fasterxml/jackson/databind/exc/InvalidDefinitionException类是Jackson 2.9版本之后才新增的,而你在pom中手动引入的jackson-databind版本为2.5.3,版本过低不存在该类,直接触发类找不到异常,导致内置Tomcat初始化失败。

你的pom配置存在两个直接触发问题的点:

  • 引入spring-boot-starter-web时手动排除了官方默认绑定的jackson-databind、jackson-core依赖,自行引入了过旧的2.5.3版本Jackson,和Spring Boot 2.4.0的自动配置逻辑不匹配
  • okhttp3依赖块后多写了一个冗余的</dependency>闭合标签,会导致Maven解析pom时出现构建异常,需要同步修复
修复方案

按以下步骤调整配置即可解决问题:

  • 删除spring-boot-starter-web依赖中针对jackson-databind、jackson-core的两条排除规则,不要手动剔除Spring Boot官方统一管理的基础JSON依赖
  • 删除pom中手动声明的jackson-databind 2.5.3版本依赖,Spring Boot父依赖管理已经默认配置了和当前版本完全适配的Jackson包,无需单独指定版本
  • 删除okhttp3依赖块后方多余的</dependency>冗余标签,修正XML语法错误
  • 如果原有业务代码强依赖旧版Jackson API无法直接升级,可将Spring Boot版本降级到1.5.x系列适配2.5.x版本Jackson;生产环境更推荐升级Jackson到Spring Boot绑定的默认版本,降低后续维护成本
  • 配置修改完成后执行mvn clean install命令重新拉取依赖、清除本地旧版本缓存包,再启动项目即可

额外提示:当前pom中引入了log4j 1.2.15的旧版本依赖,存在公开的高危安全漏洞,如果是生产环境部署,建议移除log4j1相关依赖,统一使用已经配置的log4j2作为日志实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 12:12:21