动态

详情 返回 返回

spring-mvc報錯-前端控制器沒有被分配正確的servlet類 - 动态 详情

報錯

org.springframework.web.servlet.DispatcherServlet' is not assignable to javax.servlet.Servlet,jakarta.servlet.Servlet

這個錯只會在你引入servlet依賴時才會報錯,依賴如果沒引入javax.servlet.Servlet或jakarta.servlet.Servlet,idea不會報錯!idea沒有提示!!!

手動檢查引入的依賴。

為什麼引入依賴了,會報錯?

因為:因為springmvc依賴servlet,springmvc源代碼裏會導入servlet這個包,那找不到了就會報錯,就是沒有導入正確的servlet包。

所以:直接按住ctrl點擊前端控制器的類名,然後idea會利用反射給你springmvc源代碼,然後查看當前你版本的springmvc前端控制器導入的包是javax還是jakarta。
這樣就可以知道你的springmvc到底使用的舊版本的還是新版本的。

然後就可以,根據這個版本調低tomcat版本或者升高springmvc版本,
目前我知道的是springmvc的最後一個版本5.3.33使用的javax的servlet,6.14是用的已經轉移後(jakarta)的包裏的servlet類。

知道了以後有兩種方法,手動在項目結構裏添加你tomcat程序自帶的lib下的servlet-api,這種servlet直接和tomcat版本對應,沒兼容問題。
還有一種方法就是使用maven依賴添加servlet,需要注意和tomcat兼容問題。

Add a new 评论

Some HTML is okay.