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

Quarkus生产环境Swagger UI访问报RESTEASY003210错误求助

解决Quarkus 1.9.2.Final生产环境Swagger UI无法访问的问题

我之前在Quarkus早期版本也碰到过类似的生产环境Swagger UI失效问题,结合你的配置和报错信息,给你几个排查和解决的方向:

1. 确认依赖的作用范围

首先检查你的quarkus-smallrye-openapi依赖是否被正确设置为compile范围(默认就是compile,但如果不小心加了scope标签要注意)。如果依赖被设为test或dev,打包成生产jar时会被排除,导致Swagger UI相关资源不存在。

正确的依赖配置应该是:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-smallrye-openapi</artifactId>
    <!-- 不要添加test/dev的scope,保持默认compile -->
</dependency>

2. 补充OpenAPI文档的强制生成配置

在Quarkus 1.9.x版本中,仅设置quarkus.swagger-ui.always-include=true还不够——生产环境下OpenAPI的JSON/YAML文档默认是不生成的,Swagger UI需要依赖这份文档才能正常加载。你需要同时添加以下配置到你的application.properties(或yml)中:

# 强制在生产环境生成OpenAPI文档
quarkus.smallrye-openapi.always-include=true
# 强制在生产环境启用Swagger UI
quarkus.swagger-ui.always-include=true
# Swagger UI的访问路径
quarkus.swagger-ui.path=/swagger-ui

3. 验证访问路径的正确性

注意生产环境下Quarkus对路径匹配更严格:

  • 你配置的路径是/swagger-ui,所以正确的访问地址应该是http://localhost:8080/swagger-ui/(末尾的斜杠很重要,生产环境不会自动重定向)
  • 先验证OpenAPI文档是否能正常访问:访问http://localhost:8080/openapi,如果能返回结构化的JSON数据,说明文档生成正常,再去访问Swagger UI

4. 确认运行的是正确的可执行jar

用mvn package打包后,target目录下会生成两个jar:

  • 一个是普通jar(比如your-app-1.0.0.jar)
  • 一个是可执行runner jar(比如your-app-1.0.0-runner.jar)

你需要运行的是runner jar,命令为:

java -jar target/your-app-1.0.0-runner.jar

普通jar不包含Quarkus的运行时环境,无法加载Swagger UI的静态资源和相关扩展。

5. 检查日志中的关键信息

如果还是有问题,启动生产jar时添加日志级别配置,查看Swagger UI相关的初始化日志:

java -Dquarkus.log.category."io.quarkus.smallrye.openapi".level=DEBUG -jar target/your-app-1.0.0-runner.jar

如果日志中出现类似Swagger UI is enabled的信息,说明扩展已经加载;如果没有,可能是依赖或配置的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:02:28