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版本過低互相有沖突有關,盡量導入較高版本的依賴,)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM