仍然无法解析导入 javax.servlet
The import javax.servlet cannot be resolved STILL
这是我的 Eclipse-wide JRE 定义,清楚地显示了 servlet-api.jar 已添加:
这里有一些似乎永远无法解决的相同的旧导入错误。 Java 是不是很棒?关于为什么这仍然不起作用,是否有人有一个简单、真实的答案?
jakarta.servlet
与 javax.servlet
Any chance someone has a simple, factual answer as to why this still doesn't work?
因为:
- 您正在针对 Tomcat 10.0.10 servlet-api JAR 文件进行构建。
- Tomcat 10.0.x 实现了 Servlet 规范的 5.0 版;参见 http://tomcat.apache.org/whichversion.html
- Servlet 5.0 是 Jakarta EE,不是 Java EE;见 https://en.wikipedia.org/wiki/Jakarta_Servlet#History
- 在 Jakarta EE 的更高版本中,servlet 类 的包名称已从
javax.servlet
更改为 jakarta.servlet
。
并且您的代码正在尝试使用 旧 包名称。
解决方案:
- 更改您的 webapp 代码以从 new
jakarta.servlet
包中导入,或者
- 回滚到支持旧版 Servlet 规范的 Tomcat 版本;即 Tomcat 9.0.x 或更早的
这是我的 Eclipse-wide JRE 定义,清楚地显示了 servlet-api.jar 已添加:
这里有一些似乎永远无法解决的相同的旧导入错误。 Java 是不是很棒?关于为什么这仍然不起作用,是否有人有一个简单、真实的答案?
jakarta.servlet
与 javax.servlet
Any chance someone has a simple, factual answer as to why this still doesn't work?
因为:
- 您正在针对 Tomcat 10.0.10 servlet-api JAR 文件进行构建。
- Tomcat 10.0.x 实现了 Servlet 规范的 5.0 版;参见 http://tomcat.apache.org/whichversion.html
- Servlet 5.0 是 Jakarta EE,不是 Java EE;见 https://en.wikipedia.org/wiki/Jakarta_Servlet#History
- 在 Jakarta EE 的更高版本中,servlet 类 的包名称已从
javax.servlet
更改为jakarta.servlet
。
并且您的代码正在尝试使用 旧 包名称。
解决方案:
- 更改您的 webapp 代码以从 new
jakarta.servlet
包中导入,或者 - 回滚到支持旧版 Servlet 规范的 Tomcat 版本;即 Tomcat 9.0.x 或更早的