Swagger 報錯 no mapping found for http request with uri [/***/swagger-ui.html] in dispatcherservlet with name '***'


swagger報錯:

no mapping found for http request with uri [/***/swagger-ui.html] in dispatcherservlet with name '***'。

場景復現:

整合Swagger時候,按照網上的整合教程。整合完之后,進行測試,無法打開swagger-ui.html的界面。

后台爆出d for http request with uri [/***/swagger-ui.html] in dispatcherservlet with name '***'。這個是因為沒有找到swagger-ui.html的資源,無法映射到具體的問題。

解決方式:

在配置文件中增加<mvc:default-servlet-handler />標簽成功解決了問題。

<mvc:default-servlet-handler />標簽的作用:

因為在RESTful的風格中我們一般映射請求的設置為'/',這個時候Spring MVC 將接收到的所有請求都看作是一個普通的請求,

包括對於靜態資源的請求。這樣以來,所有對於靜態資源的請求都會被看作是一個普通的后台控制器請求,導致請求找不到而報 404 異常錯誤。

 <mvc:default-servlet-handler />的出現就是為了解決這個問題,在 WEB 容器啟動的時候會在上下文中定義一個DefaultServletHttpRequestHandler,

這個DefaultServletHttpRequestHandler 會對DispatcherServlet 的請求作出處理,當已經請求果該請求已經作了映射,那么會接着交給后台對應的處理程序,

如果沒有作映射,就交給 WEB 應用服務器默認的 Servlet 處理,從而找到對應的靜態資源,只有再找不到資源時才會報錯。

參考資料:

https://blog.csdn.net/qq_27093465/article/details/78972010

 


免責聲明!

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



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