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

RESTEasy+Seam Maven项目集成Swagger时swagger.json 404求助

排查RESTEasy+Seam项目中Swagger 404无法找到swagger.json的问题

咱们一步步来拆解你遇到的问题,你的配置里有几个关键的错误点,直接导致了swagger.json无法被正常生成或访问:

1. Servlet初始化方法名写错了,根本没执行Swagger配置

你写的public void Init(ServletConfig config)是大写的Init,但Servlet规范里的初始化方法是小写的init,容器根本不会调用这个方法,你的BeanConfig完全没初始化,自然生成不了swagger.json。

修复方法:改成小写init,别忘了调用父类的方法:

@Override
public void init(ServletConfig config) throws ServletException {
    super.init(config); // 必须调用父类初始化方法
    BeanConfig beanConfig = new BeanConfig();
    beanConfig.setSchemes(new String[] {"http"});
    // 后续配置保留,但basePath需要调整(见下方说明)
}

2. web.xml里没加Swagger Servlet的URL映射

你只定义了SwaggerConfigurationServlet,但没告诉容器哪些请求要交给这个Servlet处理,相当于这个Servlet根本没对外暴露访问路径。

在web.xml的Servlet定义后面添加这段映射:

<servlet-mapping>
    <servlet-name>SwaggerConfigurationServlet</servlet-name>
    <url-pattern>/seam/resource/rest/v3/*</url-pattern>
</servlet-mapping>

这里的路径要和你@ApplicationPath("v3")的配置对应上。

3. BeanConfig的basePath配置错误

你把basePath写成了完整的URLhttp://localhost:8080/NameOfProyect/seam/resource/rest,但Swagger的basePath应该是相对于应用上下文的路径,而且要和你的Application路径匹配。

修正成:

beanConfig.setBasePath("/NameOfProyect/seam/resource/rest/v3");

如果你的项目部署在根上下文(访问路径无需加NameOfProyect),就写成/seam/resource/rest/v3。

4. 调整Swagger UI的请求URL

你的index.html里的请求地址要对应上面修正后的路径,改成:

url = "http://localhost:8080/NameOfProyect/seam/resource/rest/v3/swagger.json";

额外需要检查的点

  • 确认beanConfig.setResourcePackage("PackageOfApi");里的包名完全正确,要和你的REST接口所在的包一致(大小写、拼写都不能错),Swagger会扫描这个包下所有带Swagger注解(比如@Api、@ApiOperation)的类。
  • 你的REST接口已经添加Swagger注解了吗?如果没加,Swagger扫描不到,也不会生成文档。
  • 你用的RESTEasy 2.2.2是非常老的版本,Swagger 1.5.x和它的兼容性可能有小问题,但先把上面的配置错误修复后再测试,如果还是有问题,可以考虑降低Swagger版本到1.3.x试试(优先解决配置问题)。

测试流程

  1. 重新打包部署项目
  2. 先直接访问http://localhost:8080/NameOfProyect/seam/resource/rest/v3/swagger.json,如果能返回JSON格式的文档,说明配置没问题了
  3. 再打开Swagger UI,应该就能正常加载文档了

内容的提问来源于stack exchange,提问作者Miguel Angel Romalde

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:05:09