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

JAX-RS RestEasy应用Swagger UI 404错误求助

解决Swagger-UI 404问题的实操方案

1. 核对静态资源存放路径

先确认swagger-ui的所有文件(包括index.html、js、css等)都放在webapp/docs/swaggerui/目录下,且index.html直接在该目录中,没有嵌套更深的层级。同时要确保这些文件的权限正常,web容器能够读取。

2. 调整JAX-RS资源映射规则

如果你的JAX-RS应用配置了@ApplicationPath("/*"),会导致所有请求被JAX-RS接管,静态资源无法正常访问,需要添加放行规则:

  • 若使用web.xml配置,新增以下代码:
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/docs/*</url-pattern>
</servlet-mapping>
  • 若使用注解无web.xml,在JAX-RS应用类中添加静态资源排除逻辑:
@ApplicationPath("/")
public class YourApplication extends Application {
    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> classes = new HashSet<>();
        classes.add(ApiListingResource.class);
        classes.add(SwaggerSerializers.class);
        // 加入你的其他API业务类
        return classes;
    }

    @Override
    public Map<String, Object> getProperties() {
        Map<String, Object> props = new HashMap<>();
        // 让web容器自行处理/docs开头的静态资源请求
        props.put("resteasy.resources", "/docs/*");
        return props;
    }
}

3. 修正index.html中的swagger.json路径

打开swagger-ui的index.html,找到配置swagger数据源的代码块,确保路径和你能正常访问的/chatbox/swagger.json完全一致:

const ui = SwaggerUIBundle({
  url: "/chatbox/swagger.json", 
  dom_id: '#swagger-ui',
  // 其他配置保持不变
});

4. 验证应用部署上下文路径

确认你的应用部署后的上下文路径确实是/chatbox,如果上下文路径是根路径(即/),则访问地址应改为localhost:8080/docs/swaggerui/index.html。

5. 改用webjars自动引入swagger-ui(可选)

如果手动放置静态资源麻烦,可以通过maven依赖自动引入:
在pom.xml中添加依赖:

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>swagger-ui</artifactId>
    <version>4.18.3</version> <!-- 选择最新稳定版本即可 -->
</dependency>

此时访问地址变为localhost:8080/chatbox/webjars/swagger-ui/index.html,同样需要修改index.html中的swagger.json路径为/chatbox/swagger.json。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:40:12