springboot整合swagger2打不开swagger-ui.html或者doc.html的问题记录

一.问题背景

  用springboot整合swagger依赖,编译运行后,发现可以打开http://localhost:8888/swagger-ui.html这个页面(正常显示),却无法打开http://localhost:8888/doc.html这个页面,报错404。pom.xml文件导入依赖如下:

 

 

 二.解决思路

  通过搜索检阅发现需要导入swagger-bootstrap-ui这个依赖,导入依赖后依然访问不到doc.html这个页面。检查上述依赖是否完整导入(由于导入时网络不好),检查本地仓库依赖是否完整,git重置本地仓库到上个一个版本(git checkout),清除掉untracked的文件(git clean -df)。重新导入依赖,排除依赖导入不完整的情况下,依然出现上述问题。

 

 

通过查阅发现,需要为springmvc在写一个配置类,配置类如下:

复制代码
@Configuration
public class MyWebConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedHeaders("*")
                .allowCredentials(true)
                .allowedMethods("*");
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}
复制代码

重写addResourceHandlers方法,添加resource location配置,重新编译后成功解决上述问题。(亲测有效)

 

网上其他解决思路:两个ui依赖去掉swagger-ui这个依赖,只用swagger-bootstrap-ui依赖,重新导入编译访问页面。(我觉得这个应该和两个ui版本过低互相有冲突有关,尽量导入较高版本的依赖,)

  

posted @   iaxusyy  阅读(11058)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示