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

Tomcat部署Spring项目时提示引用旧版spring-web依赖的问题求解

问题解决思路

这一异常的核心原因是运行时实际加载的org.springframework.web.accept.ContentNegotiationManager类来自低于4.3版本的Spring包,可按以下步骤逐一排查:

1. 排查多版本Spring依赖冲突

  • 打开Ivy依赖管理面板,搜索spring-web依赖,确认是否存在低于4.3版本的间接依赖,如有则在ivy配置中添加对应包的排除规则
  • 进入exploded war输出目录的WEB-INF/lib路径,手动核对所有spring-*前缀的jar包版本,确保全部为4.3.16,删除混入的低版本Spring包后重新部署
  • 检查Tomcat安装目录的lib文件夹,排查是否存在遗留的Spring相关jar包,Tomcat公共lib的类加载优先级高于应用内部依赖,存在低版本Spring包会直接触发该异常

2. 校验依赖与部署配置

  • 确认ivy.xml中已对所有org.springframework组的依赖添加版本锁定规则,避免依赖仲裁自动拉取低版本Spring组件
  • 打开IDEA的Project Structure -> Artifacts面板,核对当前exploded war构件的依赖列表,移除不属于4.3.16版本的Spring依赖项
  • 执行IDEA的File -> Invalidate Caches...操作重启IDE,全量清理编译产物后重新构建项目,再生成部署包运行

3. 检查类加载优先级配置

  • 若Tomcat的context.xml中配置了<Loader delegate="true"/>,会启用父类加载器优先模式,如无法删除Tomcat公共lib中的低版本Spring包,可将该参数改为false,让应用优先加载自身WEB-INF/lib内的依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:27:03