问题
使用Intellij Idea创建一个Jakarta EE(Java EE)项目的时候发现连 HelloServlet 都没法访问
原因
Tomcat 版本问题。
在使用 Intellij Idea 进行Jakarta EE项目创建的时候,选择Application Server 为 Tomcat 9.0.x,但是下一步使用了默认的Java EE版本为 Jakarta EE 9.1。
从Apache Tomcat VersionsTomcat版本列表中可看到 Tomcat 9.0.x 对应的 Servlet Spec 为 4.0,而Jakarta EE 9.1 的 Servlet Spec 为 5.0。
解决方案
选择 Tomcat 9.0.x 与 Java EE 8进行项目的创建。
遗留问题
Servlet Spec 5.0 与 4.0 有什么区别,为什么会导致使用注解注册的Servlet不可用?
@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet {
...
}
其他症状
可以在 pom.xml 中的 dependencies 发现使用的 servlet-api 版本。