如何安装JavaEESDK?
我正在介绍有关 servlet 的大学章节。这本书要求我复制一段代码并在cmd中运行它。它不会在 cmd 中运行,并且这一章模糊地解释了我如何安装 Java EE。这是代码和错误:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class NameServlet extends HttpServlet {
public static void main(String[] args) {
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body style=’background-color: lightyellow’>");
String name = "Wow, this servlet works great!!";
out.println("Name: " + name);
out.println("</body>");
out.println("</html>");
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
错误:
回答
问题在于您使用的是 Apache Tomcat 10,它使用最新版本的 Jakarta EE(版本 9,Java EE 8 的后继版本)。在雅加达EE 9最大的变化是,它切换它的包的命名空间,从javax.*到jakarta.*。
您要么需要:
- 使用 Apache Tomcat 9(或更早版本,或另一个仍使用 Java EE 8 或更早版本和
javax.*命名空间的Java EE servlet 容器),或 - 切换到使用新的 Jakarta EE 命名空间(在您的情况下,包
jakarta.servlet和jakarta.servlet.http)。
如Tomcat 10 下载页面所述:
Tomcat的10起的用户应该知道,从Java EE的迁移到雅加达EE与Java EE转移到Eclipse基金会的一部分,因此,初级包装,所有已经实现的API已经从
javax.*到jakarta.*。这几乎肯定需要更改代码才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。