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

本地运行Spring Boot项目遇jakarta.servlet.ServletRequest类找不到问题求助

问题根源

你遇到的NoClassDefFoundError: jakarta/servlet/ServletRequest是版本依赖冲突导致的:

  • 项目用了Spring Boot 2.7.10(对应Spring Framework 5.3.x),这个版本依赖的是javax.servlet包下的Servlet API;
  • 但你手动引入了spring-web:6.0.0(属于Spring Framework 6.x),该版本已切换到jakarta.servlet包下的API,两者不兼容,导致运行时找不到类。
解决步骤

1. 移除冲突的spring-web依赖

删掉POM里单独引入的spring-web:6.0.0,同时取消spring-boot-starter-web里对spring-web的排除——spring-boot-starter-web已经包含了和当前Spring Boot版本匹配的spring-web,不需要手动指定或排除。

修改后的spring-boot-starter-web依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
        </exclusion>
        <!-- 移除对spring-web的排除规则 -->
    </exclusions>
</dependency>

2. 清理冲突的JAXB依赖

POM里同时引入了javax.xml.bind和jakarta.xml.bind的JAXB依赖,Spring Boot 2.7.x只需保留javax版本即可,删掉jakarta.xml.bind-api依赖:

<!-- 删除该冲突依赖 -->
<dependency>
    <groupId>jakarta.xml.bind</groupId>
    <artifactId>jakarta.xml.bind-api</artifactId>
    <version>2.3.3</version>
</dependency>

3. 移除重复依赖

POM里gson依赖出现了两次,删掉其中一个重复项。

4. 刷新Maven并重新构建

执行命令清理缓存并重新构建:

mvn clean install -U

完成以上操作后重新运行项目,即可解决类找不到的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:19:53