SpringBoot3+Springdoc:v3api-docs可以访问,html无法访问的解决方法

项目环境

springboot 3.3.4

pom.xml引用如下(springdoc相关的只有这一个,理论上说,要跑springdoc或者叫它swagger3,除了springboot,加这个就可以了,不需要任何配置类配置、application.properties/yaml配置!!)

(当然,你跑通了之后需要自定义配置了再配)

复制代码
<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.6.0</version>
</dependency>

问题描述

启动服务器之后:

v3/api-docs可以访问,并返回json数据。

/swagger-ui/index.html无法访问,报错404。

解决方法

spring配置类里配一下swagger-ui的资源路径,然后访问/swagger-ui/index.html就好了。

PS:路径里最后的5.17.14建议查一下自己引用的依赖是什么版本。

复制代码
@SpringBootApplication
public class SpringbootApplication implements WebMvcConfigurer {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 配置 Swagger UI 资源路径
        registry.addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/swagger-ui/5.17.14/");
    }
}

解决过程

  1. 先改日志级别 logging.level.root=debug
  2. 启动访问swagger-ui.html(这里被误导了,应该去swagger-ui/index.html,不过对排查没影响,排查后也明白过来了)
  3. 回去看服务器debug日志,发现在查找资源的时候,找的那些路径似乎没有swagger相关的资源路径,然后想起来之前查的哪个文里提到了swagger-ui.jar里的资源地址,然后顺着摸过去
  4. 欸,里面有个index.html,我觉得就是它了,然后印象里有另一个文里说了资源路径的配置方法,照着配一下资源路径,ojbk

展示

访问(我配的端口是18080):localhost:18080/swagger-ui/index.html

上方的搜索栏输入api-docs的网址,点击Explore即可。

相关推荐
Csvn3 小时前
性能监控
前端
Csvn3 小时前
构建工具
前端
FRing034 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
kyriewen6 小时前
Skills 榜前 10 我全装了:只有 3 个能直接用
前端·javascript·程序员
IT_陈寒6 小时前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
工控丫丫7 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
jerrywus7 小时前
我用 GPT-6.1-sol 做了台会讲解的 3D 售货机:60 罐饮料,一口没喝上
前端·agent·claude
孟陬8 小时前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
Zhao-Jichao8 小时前
AI Prompting for Everyone 课程笔记 - P17 图像生成 Imaging Generation
前端
Highcharts.js9 小时前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化