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

将Spring Boot应用部署至Tomcat 7.0.52时遇到问题求助

解决Spring Boot部署到Tomcat 7.0.52的持续报错问题

最近我在把Spring Boot应用部署到Tomcat 7.0.52的时候,一直被各种错误缠上,一开始我猜问题大概率出在pom.xml的依赖配置或者服务器类冲突上,试了好几种方法都没用,最后终于找到根源了!

我试过的无效操作

  • 直接删了本地Maven仓库的.m2文件夹,重新拉取所有依赖,结果报错还是没消失
  • 给tomcat-embed-core和tomcat-embed-el这两个依赖加上provided范围,想着让Tomcat自己提供这些类,结果依然没用

最终搞定的方法

后来才发现,问题的关键在于必须彻底移除Spring Boot自带的Tomcat嵌入依赖,而且一定要配合Maven的清理操作才行:

  1. 先修改pom.xml,把所有和嵌入Tomcat相关的依赖删掉或者排除掉:
    • 如果你的项目里直接引入了spring-boot-starter-tomcat,直接把这个依赖块删掉就行:
    <!-- 删掉这个嵌入Tomcat的依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    
    • 如果是用spring-boot-starter-web自动引入的Tomcat,就通过排除依赖的方式移除:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  2. 执行Maven的清理和打包命令:
    mvn clean package
    
    之前我也试过移除依赖,但没成功,就是因为忘了执行mvn clean!旧的编译文件还留在项目里,导致依赖冲突的问题依然存在,清理之后再打包就没问题了。

为啥会出这个问题?

Tomcat 7.0.52版本比较老,和Spring Boot默认带的嵌入Tomcat版本兼容性很差,必须把嵌入的Tomcat依赖彻底去掉,让外部Tomcat来管理这些类,才能避免冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:14:08