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

IntelliJ IDEA中Spring项目添加依赖后Tomcat无法启动求助

问题分析与解决方案

之前Spring项目能正常启动内嵌Tomcat并加载页面,添加以下POM依赖后Tomcat无法启动:

<properties>
    <java.version>11</java.version>
</properties>
<dependencies>
    <!-- Spring MVC -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- Tomcat Embed -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- JSTL -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    <!-- JSP文件编译依赖 -->
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- 测试依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!-- SPRING DATA -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!-- MySQL驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
        <version>5.1.47</version>
    </dependency>
    <!-- Commons-lang3 -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.12.0</version>
    </dependency>
    <!-- tika-parsers -->
    <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-parsers</artifactId>
        <version>1.17</version>
    </dependency>
    <!-- 文件上传依赖 -->
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.4</version>
    </dependency>
</dependencies>

可能的问题点及解决步骤

1. Tomcat依赖作用域错误

spring-boot-starter-tomcat和tomcat-embed-jasper的<scope>provided</scope>会导致本地开发时(直接运行Spring Boot主类)无法加载这些依赖——provided意味着依赖由部署容器提供,但本地用的是Spring Boot内嵌Tomcat,需要这些依赖在运行时存在。

解决: 删掉这两个依赖的<scope>provided</scope>标签,让它们默认使用compile作用域,这样内嵌Tomcat启动时能获取到必要的组件。

2. Tika-parsers版本兼容性问题

tika-parsers 1.17是2017年的旧版本,完全不支持Java 11,会引发类加载错误或兼容性异常,导致Tomcat启动失败。

解决: 升级到支持Java 11的Tika版本(建议2.x系列),同时注意Tika 2.x后artifactId已变更,替换为:

<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-parsers-standard-package</artifactId>
    <version>2.9.0</version>
</dependency>

(可根据Spring Boot版本选择适配的Tika版本,避免依赖冲突)

3. MySQL驱动版本过旧

mysql-connector-java 5.1.47对Java 11的支持有限,可能和Spring Data JPA或Java 11的特性不兼容,引发启动时的数据库连接相关错误。

解决: 升级MySQL驱动到适配Java 11的版本,比如:

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
    <version>8.0.33</version>
</dependency>

(com.mysql:mysql-connector-j是MySQL官方新的groupId,替代旧的mysql:mysql-connector-java)

4. 检查依赖冲突

执行mvn dependency:tree命令查看完整依赖树,排查是否存在重复依赖或版本冲突(比如Tika可能引入旧版servlet-api,和Spring Boot的内嵌Tomcat依赖冲突)。如果发现冲突,可通过<exclusions>标签排除冲突的依赖。

内容的提问来源于stack exchange,提问作者Angello G_De la torre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:15:36