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

Spring Boot 3集成Swagger3报错Type javax.servlet.http.HttpServletRequest not present如何解决

问题分析与解决

报错原因

  • Spring Boot 3 基于 Jakarta EE 9 规范,所有 Servlet API 相关类的包名已从 javax.servlet 迁移至 jakarta.servlet。
  • 你使用的 springfox-swagger2 和 springfox-swagger-ui 3.0.0 版本依赖的是旧版 javax.servlet 包,与 Spring Boot 3 的 Jakarta 规范完全不兼容,因此会出现找不到 javax.servlet.http.HttpServletRequest 类的错误。
  • 虽然 Spring Boot 确实内置了 Servlet 容器,但它提供的是适配 Jakarta 规范的 Servlet API,而非旧的 javax 版本,两者包名不匹配导致了这个问题。

解决方案

推荐方案:替换为 springdoc-openapi(主流替代)

由于 springfox 已停止维护,且其 3.0.0 版本不支持 Spring Boot 3,建议改用 springdoc-openapi,它是专门适配 Spring Boot 3 的 OpenAPI 实现库。依赖配置如下:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.2.0</version> <!-- 可根据需求选择最新稳定版 -->
</dependency>

配置完成后,访问 http://localhost:8080/swagger-ui/index.html 即可查看接口文档。

备选方案(不推荐):添加迁移桥接依赖

如果一定要继续使用 springfox,可以尝试添加 javax 到 jakarta 的迁移桥接依赖,强制兼容旧包名,但可能引发其他潜在问题:

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jakartaee-migration</artifactId>
    <version>1.0.0</version>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:17:20