你是否刚开始学习SpringMVC,使用的是最新版的Tomcat和最新版的Spring-web等,但要注意,即使是最新的SpringMVC框架,也和Tomcat有不兼容的地方!例如在配置前端控制器时使用的
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
但是,Apache为了将Tomcat10与之前的版本区分,不再使用javax,而是使用jakarta
如果你查看了org.springframework.web.servlet.DispatcherServlet.java,你就会发现它导入的包依然是javax.*
import javax.servlet.DispatcherType; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
这样启动Tomcat后你会发现报异常,但Tomcat依然在运行,前端可以访问,但是访问例如Controller的时候就会404,因为DispatcherServlet无法再引入javax.*了。
最简单的办法自然就是把Tomcat降级,当然官网也提供了迁移工具,网络上也有具体用法,这里就不再展示(其实是我也没用过哈哈)