尝试过的方法:
- 修改 Application context 为项目名
- 新建项目并运行HelloServlet也失败,但能访问index.jsp
成功的方法:
新版本:
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
回退到旧版本:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0</version>
<scope>provided</scope>
</dependency>
但回退版本会导致还要修改依赖包,况且总不能放弃新版本的使用嘛。此时我才想起来,tomcat 是9.0版本,会不会是因为不支持新版本 jakarta 呢?
还真是,tomcat官网首页就解释了:
Jakarta EE 平台是 Java EE 平台的演进。Tomcat 10 及更高版本执行作为 Jakarta EE 一部分开发的规范。Tomcat 9 及更早版本执行的是作为 Java EE 一部分开发的规范。
最后换成 10.1.15 版本解决。