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

JHipster 7.1.0版本swaggerUI访问返回404问题咨询

问题成因
  • JHipster 7.1.0 版本默认将 Swagger UI 对应的静态页面资源的拷贝打包逻辑,绑定到了 dev 环境专属的构建流程中。直接通过 IntelliJ 默认启动配置、或不加参数执行 mvnw 命令启动项目时,不会触发该资源拷贝逻辑,classpath 下缺失 Swagger UI 相关的静态文件,因此访问 swagger-ui.html 返回404。
  • Springdoc / Springfox 生成的 v2、v3 版本 API Docs 是后端接口直接返回的 JSON 数据,不依赖前端静态资源,因此不受上述配置影响,可以正常访问。
  • 执行 mvn clean spring-boot:run 命令时可以正常访问,是因为 JHipster 为 spring-boot:run 插件默认配置了自动激活 dev profile 的规则,启动时会自动执行 Swagger UI 静态资源的拷贝逻辑,资源存在因此页面可以正常加载。
解决方法

方案1:启动时主动激活 dev profile(推荐,符合JHipster默认设计)

  • IntelliJ 启动配置中,找到「Active Profiles」输入项,填写 dev 后保存配置,重启项目即可正常访问 Swagger UI。
  • 使用 mvnw 命令启动时,添加 profile 激活参数即可:
    # Linux/Mac
    ./mvnw spring-boot:run -Dspring.profiles.active=dev
    # Windows
    mvnw.cmd spring-boot:run -Dspring.profiles.active=dev
    

方案2:调整Maven配置,放开Swagger UI资源的profile限制

如果需要在非dev环境也能访问Swagger UI,修改pom.xml配置:
找到绑定了dev profile的Swagger UI资源拷贝执行任务,移除其profile关联,或添加你需要的生效profile,配置生效后重新启动项目即可。

方案3:手动添加静态资源映射

如果上述方案未生效,可在Spring Boot Web配置类中添加静态资源映射规则:

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:39:04