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

Spring Boot 3集成Swagger 2遇ClassNotFoundException错误的解决咨询

Spring Boot 3集成Swagger启动失败问题解决

问题描述

在Spring Boot 3项目中引入Swagger相关依赖后启动报错,核心错误信息如下:

java.lang.TypeNotPresentException: Type javax.servlet.http.HttpServletRequest not present
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest

项目pom.xml中配置的Swagger相关依赖:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>3.0.0</version>
</dependency>
<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.0.2</version>
</dependency>

原因分析

  1. API规范兼容问题:Spring Boot 3基于Spring 6,全面采用Jakarta EE API(包前缀为jakarta.*),而Springfox 3.0.0仍依赖旧的Java EE API(包前缀为javax.*),导致无法找到javax.servlet.http.HttpServletRequest类。
  2. 依赖冲突:同时引入Springfox和Springdoc两种Swagger实现框架,二者底层机制不一致,引发依赖加载冲突。

解决方案

1. 移除不兼容的Springfox依赖

删除pom.xml中所有io.springfox相关依赖——Springfox已停止维护,且不支持Spring Boot 3及Jakarta EE规范。

2. 保留并使用Springdoc依赖

仅保留Springdoc OpenAPI依赖,这是当前支持Spring Boot 3的主流Swagger实现:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.0.2</version>
</dependency>

3. 验证访问

启动项目后,通过以下路径访问:

  • Swagger UI页面:http://localhost:端口号/swagger-ui.html
  • OpenAPI规范文档:http://localhost:端口号/v3/api-docs

内容的提问来源于stack exchange,提问作者Sercan Noyan Germiyanoğlu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:35:31