在 Debian 下使用 Swagger(OpenAPI) 时“报错”原因很多,常见集中在 Java / Spring / Node / Python 环境、依赖、权限、端口、JDK 版本 等方面。下面按最常见场景给你一个排查清单,你可以对照看看属于哪一类。
Swagger / Springfox / springdoc-openapi 对 Java 版本要求严格。
| Swagger 方案 | 推荐 JDK |
|---|---|
| Springfox 2.x | Java 8 |
| Springfox 3.x | Java 8–11 |
| springdoc-openapi | Java 11+ |
Debian 默认可能装的是:
java -version
✅ 解决方案
sudo apt install openjdk-11-jdk
# 或
sudo apt install openjdk-8-jdk
典型报错:
ClassNotFoundExceptionNoClassDefFoundErrorFailed to read schema✅ 建议:
mvn dependency:tree
常见坑:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.x.x</version>
</dependency>
Swagger UI 默认:
80808081报错示例:
Address already in use
✅ 检查:
ss -lntp | grep 8080
✅ 解决:
kill -9 PID
或修改端口:
server:
port: 9090
报类似:
Permission denied
✅ 不要直接用 root 跑服务
✅ Maven 不要放在 root 目录
建议:
chmod -R 755 your-project
常见错误:
/swagger-ui.html 404✅ Spring Boot 2.x:
@EnableSwagger2
✅ Spring Boot 3.x:
@RestController
@RequestMapping("/swagger")
访问地址:
http://localhost:8080/swagger-ui/index.html
常见错误:
Cannot find module 'swagger-ui-express'
✅ 解决:
npm install swagger-ui-express
Debian 下注意:
node -v
npm -v
FastAPI 自带 Swagger:
http://localhost:8000/docs
如果报错:
ModuleNotFoundError✅ 检查:
pip show fastapi
pip show uvicorn
请你补充以下信息(非常重要):
1️⃣ 你用的是:
2️⃣ 报错截图或完整错误信息(最关键)
3️⃣ Debian 版本:
cat /etc/os-release
4️⃣ Swagger 具体版本
只要你把 报错原文贴出来,我可以直接告诉你 为什么报、怎么改 ✅