swagger访问不了或者报fail

Hi,大家好,我是一个爱冒泡的程序猿
都是小小的问题,但是却是绊了小编一脚🤨 记录记录,通通记录下来

都是项目实战哦

问题描述:

把本地spring boot项目启动,无任何报错信息。使用swagger访问路径,http://host:port/swagger-ui.html,访问不了或报fail、debug不到自己本地项目的代码里
在这里插入图片描述

从图中可以很直接的看出,输入的地址是本地的localhost,点击try结果跑到10.25.108.23:8012上了在这里插入图片描述


原因分析:

根据种种迹象,还是从swagger开始推测,查看配置,发现配置中有一段,原因就是这块,本地调试需要改成localhost

##swagger配置
springfox.documentation.swagger.v2.host = 10.25.108.23:8012
springfox.documentation.swagger.v2.path=/api

解决方案:

改之后的配置:

##swagger配置
springfox.documentation.swagger.v2.host = localhost:10802
springfox.documentation.swagger.v2.path=/api

成功查出来啦
在这里插入图片描述

多多益善

  1. 史上最全部署使用ffmpeg

  2. 项目实战EasyDarwin+FFmpeg+Flv.js:浏览器无插件播放rtsp流

  3. flv.js浏览器播放多个rtsp流

谢谢大佬们阅读,如果觉得好【无比期盼】收藏一下以后用(╹▽╹),也可以【求您】点个赞,嘻嘻

这段时间疫情又起来了,大家注意防护哦,走喽,嘻嘻,下次见哦😘

防护你我他,健康为大家

<think>嗯,用户遇到了Swagger UI访问404的问题,需要解决。首先,我得回忆一下常见的Swagger配置错误。根据用户提供的引用内容,可能的原因有几个:跨域配置冲突、路径错误、静态资源处理问题。 用户提到他们之前集成了Shiro并处理了跨域,然后通过继承WebMvcConfigurationSupport导致Swagger无法访问。这说明可能因为自定义的WebMvc配置覆盖了默认设置,使得Swagger的静态资源路径没有被正确加载。这时候需要检查是否在自定义配置类中添加了资源处理器,把Swagger相关的静态路径排除或者覆盖了。 另外,引用的资料提到正确的访问路径应该是包含项目名和/swagger-ui/index.html,而不是传统的/swagger-ui.html。这可能是因为Swagger版本升级后路径发生了变化,用户可能还在用旧路径访问,导致404。需要确认用户使用的Swagger版本,并指导他们使用正确的URL。 还有静态资源的问题,引用指出Swagger页面是jar包内的,不需要修改静态资源路径,但若Spring Boot的静态资源处理被自定义配置干扰,可能会导致无法正确加载这些资源。例如,继承WebMvcConfigurationSupport会禁用自动配置,需要手动添加资源路径。 接下来,解决方案应该分步骤:检查依赖配置,确保Swagger相关依赖正确;检查MVC配置,添加资源处理;检查访问路径是否正确;处理Shiro等安全框架的拦截,放行Swagger相关路径。同时,可能需要检查应用上下文路径是否配置,影响最终访问URL。 用户可能需要一步步检查这些方面,比如查看是否添加了@EnableSwagger2注解,SwaggerConfig是否正确配置,资源处理器是否添加了swagger相关的路径,以及安全框架的配置是否有排除Swagger的路径。此外,确认访问的URL是否符合新版本的格式,比如是否有/index.html后缀。 最后,测试时可能需要重启应用,清除浏览器缓存,或者尝试不同的访问路径。如果所有配置都正确,但问题依旧,可能需要进一步检查是否有其他拦截器或过滤器阻止了请求。</think>### Swagger UI访问404错误的解决方案 #### 一、问题原因分析 1. **路径错误**:新版本Swagger访问路径已调整为`/swagger-ui/index.html`,而非传统的`/swagger-ui.html`[^2]。 2. **静态资源拦截**:若自定义了`WebMvcConfigurationSupport`,会覆盖默认静态资源配置,导致Swagger资源路径失效[^1][^3]。 3. **安全框架冲突**:Shiro等安全框架未放行Swagger相关路径,导致请求被拦截[^1]。 4. **依赖缺失**:未正确引入`springfox-boot-starter`或版本不兼容。 #### 二、逐步解决方案 ##### 1. 检查依赖配置 确保`pom.xml`包含以下依赖(Spring Boot 2.6+需注意版本兼容性): ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency> ``` ##### 2. 修复MVC配置 若已继承`WebMvcConfigurationSupport`,需手动添加Swagger资源路径: ```java @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/swagger-ui/**") .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); } ``` ##### 3. 调整访问路径 使用以下格式访问(假设项目上下文路径为`/api`): $$ \text{http://localhost:8080/api/swagger-ui/index.html} $$ ##### 4. 安全框架配置 在Shiro过滤器中放行Swagger路径: ```java filterChainDefinitionMap.put("/swagger-ui/**", "anon"); filterChainDefinitionMap.put("/v3/api-docs/**", "anon"); ``` ##### 5. 验证配置类 确保存在Swagger配置类: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build(); } } ``` #### 三、补充说明 | 现象 | 解决方案 | 相关引用 | |------------|-----------------------------------|----------| | 白屏无内容 | 检查资源处理器是否添加 | | | 401未授权 | 在安全框架中放行`/v3/api-docs`路径| | | 页面加载不全| 检查浏览器控制台错,通常为CSS/JS路径问题 | |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哩哩啦啦’

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值