在 Linux 环境下使用 Swagger(OpenAPI) 时,常见问题通常来自配置、路径、权限、依赖和运行环境。下面按使用场景总结常见错误及解决方法。
现象
/swagger-ui.html 或 /swagger-ui/ 报 404常见原因
解决
server:
servlet:
context-path: /api
访问地址应为:
http://ip:port/api/swagger-ui.html
现象
解决(Spring Security 示例)
@Override
public void configure(WebSecurity web) {
web.ignoring().antMatchers(
"/swagger-ui.html",
"/swagger-resources/**",
"/v2/api-docs",
"/webjars/**"
);
}
现象
Permission denied
FileNotFoundException
原因
解决
chown -R appuser:appuser /opt/app
chmod 755 /opt/app
现象
排查
getenforce
临时解决
setenforce 0
现象
解决
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
现象
Unable to render this definition
Failed to load API definition
原因
解决
spring:
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
或改用 springdoc-openapi
/swagger-ui.html 404正确地址
/swagger-ui/index.html
@OpenAPIDefinition
@SpringBootApplication
确保 Controller 在启动类同包或子包
原因
docker run -p 8080:8080 app
-e TZ=Asia/Shanghai
| 错误 | 原因 |
|---|---|
| No mapping for GET /swagger-ui.html | 未配置资源 |
| Failed to load API definition | 接口异常或循环依赖 |
| BeanCreationException | Swagger 配置类错误 |
| StackOverflowError | DTO 循环引用 |
如果你能告诉我:
我可以直接帮你定位到具体原因。