這個問題在這里已經有了答案: Servlet 5.0 JAR 在 javax.servlet.* 上引發編譯錯誤,但 Servlet 4.0 JAR 沒有 (2 個答案) 15 天前關閉。
我創建了一個名為 TestingServlet 的 java servlet,當我嘗試編譯檔案時出現錯誤。我已經為 servlet-api.jar 設定了類路徑,并且還嘗試在編譯時包含類路徑:
javac -cp "C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar" TestingServlet.java
代碼是:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class TestingServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Servlet Testing</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("Welcome to the Servlet Testing Center");
out.println("</BODY>");
out.println("</HTML>");
}
}
錯誤是:
TestingServlet.java:6: error: cannot find symbol
public class TestingServlet extends HttpServlet {
^
symbol: class HttpServlet
TestingServlet.java:8: error: cannot find symbol
public void doGet(HttpServletRequest request,
^
symbol: class HttpServletRequest
location: class TestingServlet
TestingServlet.java:9: error: cannot find symbol
HttpServletResponse response)
^
symbol: class HttpServletResponse
location: class TestingServlet
TestingServlet.java:10: error: cannot find symbol
throws ServletException, IOException {
^
symbol: class ServletException
location: class TestingServlet
TestingServlet.java:1: error: package javax.servlet does not exist
import javax.servlet.*;
^
TestingServlet.java:2: error: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
6 errors
uj5u.com熱心網友回復:
Tomcat 10 Servlet API 使用新的jakarta命名空間,因此包名稱已更改,如Tomcat 10 頁面中所述:
Tomcat 10 及更高版本的用戶應該知道,由于作為 Java EE 轉移到 Eclipse 基金會的一部分而從 Java EE 轉移到 Jakarta EE,所有已實作 API 的主要包
javax.*已從jakarta.*.
所以在你的情況下
import jakarta.servlet.*
import jakarta.servlet.http.*
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/465833.html
