【问题标题】:Compile time error: package javax.servlet does not exist import javax.servlet.*编译时错误:包 javax.servlet 不存在 import javax.servlet.*
【发布时间】:2020-04-17 17:20:09
【问题描述】:

我已将类路径设置如下: CLASS_PATH: C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib;C:\Program Files (x86)\Java\mysql-connector.jar;C:\Program Files (x86)\Java\sqljdbc_8.2\enu \mssql-jdbc-8.2.0.jre8.jar;

我还尝试在编译时使用 jar 文件:- java -cp C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar Hello.java

java -cp "C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar" Hello.java

java -cp .;C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar Hello.java

java -cp ".;"C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar" Hello.java

java -cp C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar;. Hello.java

java -cp "C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar";. Hello.java

我也尝试将 -cp 替换为类路径,但每次我仍然收到以下错误:

C:\Program Files\Apache Software Foundation\Tomcat 10.0\webapps\16 servlet\WEB-INF\classes>javac -cp .;servlet-api.jar; Hello.java
Hello.java:2: error: package javax.servlet does not exist
import javax.servlet.*;
^

Hello.java:3: error: cannot find symbol
public class Hello implements Servlet
                              ^
  symbol: class Servlet

Hello.java:5: error: cannot find symbol
        public void init(ServletConfig sc)throws ServletException
                         ^
  symbol:   class ServletConfig
  location: class Hello

Hello.java:5: error: cannot find symbol
        public void init(ServletConfig sc)throws ServletException
                                                 ^
  symbol:   class ServletException
  location: class Hello

Hello.java:9: error: cannot find symbol
        public ServletConfig getServletConfig()
               ^
  symbol:   class ServletConfig
  location: class Hello

Hello.java:13: error: cannot find symbol
        public void service(ServletRequest req,ServletResponse res)throws ServletException
                            ^
  symbol:   class ServletRequest
  location: class Hello

Hello.java:13: error: cannot find symbol
        public void service(ServletRequest req,ServletResponse res)throws ServletException
                                               ^
  symbol:   class ServletResponse
  location: class Hello

Hello.java:13: error: cannot find symbol
        public void service(ServletRequest req,ServletResponse res)throws ServletException
                                                                          ^
  symbol:   class ServletException
  location: class Hello
8 errors

我的 Hello.java Servlet 文件:-

    import java.io.*;
    import javax.servlet.*;

public class Hello implements Servlet
{
    public void init(ServletConfig sc)throws ServletException
    {

    }
    public ServletConfig getServletConfig()
    {
        return null;
    }
    public void service(ServletRequest req,ServletResponse res)throws ServletException
    {
        String name=req.getParameter("name");
        PrintWriter out=res.getWriter();
        out.println("Hello "+name);
    }
    public String getServletInfo()
    {
        return null;
    }
    public void destroy()
    {

    }
}

tbh 我也在 netbeans IDE 上尝试了其他 Servlet java 程序,它运行良好,但即使在搜索并尝试了所有可能的解决方案之后,我也无法自己明确配置它,请大家帮我解决它。

【问题讨论】:

  • 删除 oracleapache 标签,因为它们与这个问题完全无关 - 请在标记问题时注意标签的描述。
  • 好的兄弟,对不起,我是新来的,这是我的第一个问题。我会观察它的兄弟谢谢。

标签: java tomcat servlets


【解决方案1】:

Tomcat 10 目前是一个里程碑式的版本,因此对于第一步或有意义的开发工作来说并不是很好,除非您特别想找出问题的根本原因:

Tomcat 10 不向后兼容,因为整个 Java EE(或其所属的任何标签)现在都被新的 Jakarta EE 取代,因此您的 import javax.servlet.* 现在需要为 import jakarta.servlet.*

与其立即调整所有内容,不如使用 Tomcat 9 并使用旧的和(随处可见的)javax.servlet.*

【讨论】:

  • 谢谢兄弟,在使用 jakarta.servlet 后它正在工作。我犯了这么愚蠢的错误。是的,我想我会继续使用 Tomcat 10,因为问题越多,我对它的理解就越深入。
  • 非常感谢,我真的很感激
猜你喜欢
  • 2012-02-29
  • 2013-04-22
  • 2014-05-15
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多