springMvc集成swagger遇到的問題

1、訪問swagger-resources/configuration/ui 報錯404

排查原因,檢查 appcontext配置中掃描swaggerConfig配置類,新加的包類需要添加掃描

 

2、彈框報錯提示 Unable to infer base url. This is common when using dynamic...

 

經過排查,是系統攔截了 swagger的請求,需要放開系統的安全攔截,2.6.1版本的則不會提示彈框,升級到2.9.0版本則會提示彈框

主要原因還是系統做了攔截,F12可以檢查一下,系統的過濾器controller和web.xml檢查

 

3、啓動報錯,Failed to start bean 'documentationPluginsBootstrapper'

swagger2.9.0版本用到的guava版本是20.0 系統裏的guava版本衝突了,把你係統的guava版本排除掉,或者升級到20.0

 

4、Swagger2.9.0報錯No operations defined in spec!問題

這相當於項目swagger啓動成功了,沒有展示接口信息,原因是swaggerConfig裏配置的問題,或者配置的controller沒有被spring掃描到,跟到底層才發找出了問題。

 

5、swagger項目啓動成功了,原來系統訪問報錯了,排查是 web.xml攔截問題

 Servlet對外訪問的虛擬路徑的匹配順序大致如下:

       1.含有全部或部分對外訪問的具體路徑配置,如/LoginServlet,/servlet/*(優先匹配更爲具體的路徑); 
       2./*的配置; 
       3.形如*.action這樣後綴形式的配置,如index.jsp,login.action(即使是具體的路徑,優先級也會低於1和2的配置); 
       4.其它配置無法匹配的時候,匹配/所配置的Servlet。

       注意:/servlet/*.action這樣的配置是錯誤的,即不應該存在這樣的配置。

把web.xml中的 servlet攔截改成/ 測試成功了

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章