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