SpringBoot執行時提示NoSuchMethodError以及更換Tomcat版本後無法啟動的解決方案
阿新 • • 發佈:2021-10-04
NoSuchMethodError:…HttpServletRequest.getHttpServletMapping()的提示,雖然專案還能夠正常執行,但是看著就很不舒服,剛開始看網上說是SpringBoot2.x內建的tomcat9,tomcat9使用的是servletAPI v4,但是SpringBoot 2.x還包含著 servletAPI v3.1,遂更換了Tomcat的版本。
結果發現直接無法啟動了,提示The following method did not exist: org.apache.tomcat.util.modeler.Registry.disableRegistry()V,該報錯表示無法通過指定的路徑找到該類。 最後在stackoverflow上找到了大神提供的解決方案。 原因是:你的mavenvending倉庫中springboot內嵌的tomcat的版本過多,導致匹配混亂
解決方法:只需將本地的maven倉庫中的D:\MavenLocalRepository\org\apache\tomcat\embed(這裡是我的路徑,這個路徑表示springboot的內嵌tomcat依賴)中的資料夾刪除後重新下載即統一版本就可以了。 同時再次呼叫Controller時也不會在控制檯提示NoSuchMethodError了。**
原文連結:https://blog.csdn.net/weixin_42290467/article/details/105807333