国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Springboot下swagger-ui.html訪問不到的解決方案

Springboot下swagger-ui.html訪問不到的解決方案

2022-02-17 14:59牧竹子 Java教程

這篇文章主要介紹了Springboot下swagger-ui.html訪問不到的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

 

Springboot swagger-ui.html訪問不到

 

問題

在前面的Swagger2的基本配置中是可以訪問到swagger-ui.html的

但當自定義繼承配置WebMvcConfigurationSupport后便無法訪問到該頁面,原因參考請看參考資料。

首先看我的自定義配置,

*************
 * HttpMessageConverter轉換處理
 * 處理轉義hmtl標簽為正常的hmtl標簽
 * @author zjcjava@163.com
 *
 */
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
    @Bean
    public MappingJackson2HttpMessageConverter customJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.configure(
                DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        objectMapper.getSerializerProvider().setNullValueSerializer(
                new JsonSerializer<Object>() {
                    @Override
                    public void serialize(Object value, JsonGenerator jgen,
                            SerializerProvider provider) throws IOException,
                            JsonProcessingException {
                        jgen.writeString("");
                    }
                });
        // 進行HTML解碼
        objectMapper.registerModule(new SimpleModule().addSerializer(
                String.class, new JsonSerializer<String>() {
                    @Override
                    public void serialize(String value, JsonGenerator jgen,
                            SerializerProvider provider) throws IOException,
                            JsonProcessingException {
                        jgen.writeString(StringEscapeUtils.unescapeHtml4(value));
                    }
                }));
        jsonConverter.setObjectMapper(objectMapper);
        return jsonConverter;
    }
    @Override
    public void configureMessageConverters(
            List<HttpMessageConverter<?>> converters) {
        converters.add(customJackson2HttpMessageConverter());
        super.addDefaultHttpMessageConverters(converters);
    }
}

如果我把該文件全部注釋掉則會正常顯示,否則無法訪問到swagger-ui.html,

 

解決方法

如果繼承了WebMvcConfigurationSupport,則在配置文件在中配置的相關內容會失效,需要重新指定靜態資源

因此參照資料2我做了處理如下,在該代碼的末尾加上靜態資源配置

代碼加在

*************
 * HttpMessageConverter轉換處理
 * 處理轉義hmtl標簽為正常的hmtl標簽
 * @author zjcjava@163.com
 *
 */
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
    @Bean
    public MappingJackson2HttpMessageConverter customJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.configure(
                DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        objectMapper.getSerializerProvider().setNullValueSerializer(
                new JsonSerializer<Object>() {
                    @Override
                    public void serialize(Object value, JsonGenerator jgen,
                            SerializerProvider provider) throws IOException,
                            JsonProcessingException {
                        jgen.writeString("");
                    }
                });
        // 進行HTML解碼
        objectMapper.registerModule(new SimpleModule().addSerializer(
                String.class, new JsonSerializer<String>() {
                    @Override
                    public void serialize(String value, JsonGenerator jgen,
                            SerializerProvider provider) throws IOException,
                            JsonProcessingException {
                        jgen.writeString(StringEscapeUtils.unescapeHtml4(value));
                    }
                }));
        jsonConverter.setObjectMapper(objectMapper);
        return jsonConverter;
    }
    @Override
    public void configureMessageConverters(
            List<HttpMessageConverter<?>> converters) {
        converters.add(customJackson2HttpMessageConverter());
        super.addDefaultHttpMessageConverters(converters);
    }
    /**
     * 發現如果繼承了WebMvcConfigurationSupport,則在yml中配置的相關內容會失效。 需要重新指定靜態資源
     * 
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations(
                "classpath:/static/");
        registry.addResourceHandler("swagger-ui.html").addResourceLocations(
                "classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations(
                "classpath:/META-INF/resources/webjars/");
        super.addResourceHandlers(registry);
    }
    /**
     * 配置servlet處理
     */
    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

 

swagger-ui的坑,swagger-ui.html無顯示

且返回200無報錯,且/v2/api-docs可以正常訪問

因為粗心,踩中的坑,代碼規范,細心真的能節省很多時間

上圖,界面顯示如圖,一切都正常,控制臺,也沒有報錯,很詭異吧

Springboot下swagger-ui.html訪問不到的解決方案

Springboot下swagger-ui.html訪問不到的解決方案

docs卻可以正常訪問,包括接口,都是正常的,網上很多解決方案都是說,跨域問題,或者是靜態資源訪問不到

1,首先跨域問題,會報錯,有很明顯的報錯提示,這里排除,

2,靜態資源,可以參考csdn上的其他方案很多,排查方法,可以查看targer目錄下是否有靜態文件

Springboot下swagger-ui.html訪問不到的解決方案

 

現在說這個問題導致的原因,以及解決方案

由于當時再寫監聽器相關代碼,里面還涉及到過濾器,網上說到swagger會和攔截器有沖突,所以一直錯誤認為是監聽器導致的問題,而且還有fastdfs的相關代碼,也有說這兩個起沖突,沒辦法,一一排查,進行版本回滾,發現fasdfs這個版本沒有問題,這里要說,平時開發一定要切分支,分支切不了也要多提交版本,這樣一旦出現問題也好解決。

然后下個版本發現,加上監聽器,問題就又出現了,把監聽器所有代碼注釋掉,問題依舊,百思不得其解,無奈,地毯掃描,版本不一樣的全部注釋,直到注釋到controller層,又正常了,非常懷疑,一個controller,service業務代碼這些不應該導致出問題的,怎么會是這的問題,然后進入代碼準備細查,打開代碼驚喜就來了

Springboot下swagger-ui.html訪問不到的解決方案

這是代碼,本來還準備去看service層,看下是不是業務上有什么代碼報錯,到這就感覺更奇怪了,什么代碼都沒寫,去掉就正常了,然后搜一下是不是方法名重復了,發現沒有,

這時發現:@RequestMapping(),對就是這個注解,里面沒東西是什么鬼,估計是當時注釋的時候直接給刪掉了,加入值后一切恢復正常

Springboot下swagger-ui.html訪問不到的解決方案

Springboot下swagger-ui.html訪問不到的解決方案

現在想想,swagger本來就是對controller的提取,沒有報錯就可以懷疑接口問題。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/zjcjava/article/details/78064264

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久精品国产99国产 | av中文字幕在线观看 | av黄色在线| 成人国产精品一区二区免费麻豆 | 日本在线黄色 | 欧美日韩在线一区 | 精品国产乱码一区二区三区 | 一区视频在线 | 婷婷色av| 天天射天天 | 国产一区二区三区在线 | 久久av网| 欧美一区二区三区在线 | 亚洲国产一区二区三区在线播放 | 欧美一级一 | 日韩电影二区 | 日韩欧美精品 | 成人免费视频在线观看 | 99久久免费看精品国产 | 99视频精品 | 国产精品国产三级国产aⅴ原创 | 中文字幕第十二页 | 日韩成人免费中文字幕 | 毛片在线网址 | 日韩黄网站 | 一级片导航 | 亚洲国产久 | 亚州国产 | 日韩精品一区二区三区在线播放 | 中文字幕亚洲一区二区va在线 | 精品日韩一区二区 | 免费人成电影 | 精品天堂 | 91精品国产一区二区三区免费 | aaa视频网站 | 国产在线精品一区 | 欧美日韩精品免费观看 | 在线播放亚洲 | 超碰97免费在线 | 欧美成人精品一区二区三区在线看 | 久久久www成人免费精品 |