org.springframework.web.servlet.DispatcherServlet’ 未分配到 ‘javax.servlet.Servlet,jakarta.servlet.Servlet’”
这个问题通常是由于类路径中缺少必要的Servlet API库,或者是项目的依赖配置不正确、不兼容导致。主要是jakarta.servlet-api、spring-webmvc、容器(如Tomcat)之间的兼容性。
首先,检查pom.xml中是否配置了jakarta.servlet-api和spring-webmvc两个依赖;
其次,检查他们的版本是否兼容,例如Spring Web MVC5.x.x版本不支持Jakarta.servlet-api的6.0.0版本,需要更新到Spring Web MVC6.0.x;
然后,检查Tomcat是否支持jakarta.servlet-api和spring-webmvc两个依赖的版本。例如Tomcat 10.x 版本开始支持 Jakarta EE 9 或更高版本。其他的WildFly 23+、GlassFish 6.x支持 Jakarta EE 9;
最后,要检查使用的JDK,是否支持Jakarta EE。
Jakarta EE 9:兼容 JDK 8 及更高版本,但推荐使用 JDK 11 或更高版本。
Jakarta EE 10:兼容 JDK 11 及更高版本
【备注】Jakarta EE 9 使用的是 Jakarta Servlet API 5.0。
Jakarta EE 10 使用的是 Jakarta Servlet API 6.0。