SpringBoot集成swagger2访问swagger-ui.html 404报错

一、访问报错

在这里插入图片描述

二、问题分析

一般来说,当我们在项目中添加好swagger2的依赖之后就可以通过
http://localhost:端口号/swagger-ui.html 来访问接口文档,但现在却
出现了404报错,也就是资源找不到所以无法访问。

如果你在项目中配置了自定义的资源映射,那么问题就找到了。
这里起初我是为了访问本地目录的资源,才配置了自定义的资源映射,但是配置完之后swagger就无法正常访问了,如果你也是类似的问题那么你只需要在配置中加上如下所示的swagger配置之后就可以正常访问接口文档了。
在这里插入图片描述

registry.addResourceHandler("swagger-ui.html")
        .addResourceLocations("classpath:/META-INF/resources/");
Spring Boot集成Swagger时遇到"No API definition provided"错误通常是因为你在配置Swagger时没有提供有效的API定义信息。Swagger需要一个YAML或JSON文件(通常是application.yml 或 swagger.yml),其中包含了API的描述、路径、请求方法、响应模型等元数据。 以下是可能出现此错误的一些原因及解决办法: 1. **未添加Swagger依赖**:确保你的pom.xml或build.gradle文件中已经包含了Swagger的核心依赖,例如`springfox-swagger2`和`springfox-swagger-ui`。 ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.x.y</version> </dependency> ``` 2. **配置文件缺失或错误**:检查`src/main/resources/swagger`目录下的`swagger.yml`或`swagger.json`是否存在并内容正确。例如,应该包含类似这样的基本结构: ```yaml openapi: 3.0.2 info: title: "API名称" version: "1.0.0" paths: /api/{resourcePath}: get: tags: - "Resource Tag" responses: '200': description: "成功返回" ``` 3. **扫描注解无效**:确认是否正确配置了扫描注解,如`@EnableSwagger2WebMvc`。它通常放在主应用类上,用于开启Swagger的支持。 4. **缺少Controller文档注解**:确保你的Controller类和方法上有Swagger相关的注解,如`@ApiOperation`、`@GetMapping`等。 如果以上步骤都已检查过还是存在问题,尝试清除缓存或删除旧的 Swagger 相关文件,然后重新构建项目。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值