jakarta-ee - 编译错误 - Tomcat,jsp

标签 jakarta-ee tomcat compilation javac

全部,

我刚刚安装了 apache tomcat,测试安装确实显示了“成功安装”apache 页面。我确实毫无问题地执行了 HelloWorld 示例。所以现在,我在 \apache-tomcat-XXX\webapps\mine 下创建了自己的 Web 应用程序,其中包含以下 2 个子文件夹:

\apache-tomcat-XXX\webapps\mine\classes
\apache-tomcat-XXX\webapps\mine\lib

我创建了一个新的类文件 HelloWorldAgain.java,内容如下:

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

/**
 * My test servlet
 *
 * @author Liz Warner
 */

public class Hi extends HttpServlet {

    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hola</title>");
        out.println("</head>");
        out.println("<body bgcolor=\"white\">");
        out.println("<h1> Hi </h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

但是,当我从命令行编译代码时,出现与

相关的错误
> Hi.java:4: package javax.servlet does not exist
import javax.servlet.*;
^
Hi.java:5: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
Hi.java:13: cannot find symbol
symbol: class HttpServlet
public class Hi extends HttpServlet {
                        ^
Hi.java:15: cannot find symbol
symbol  : class HttpServletRequest
location: class Hi
    public void doGet(HttpServletRequest request,
                      ^
Hi.java:16: cannot find symbol
symbol  : class HttpServletResponse
location: class Hi
                      HttpServletResponse response)
                      ^
Hi.java:17: cannot find symbol
symbol  : class ServletException
location: class Hi
        throws IOException, ServletException

我设置了以下环境(Windows XP 环境)变量:

JAVA_HOME: C:\Program Files\Java\jdk1.6.0_21 CATALINA_HOME: C:\Apache Tomcat\apache-tomcat-7.0.22

最佳答案

您的 Java 类使用不属于 Java SE 的其他 Java 类(“普通”或“桌面”Java)——例如 javax.servlet 中的 Java EE 类。因此,编译器不知道它们,除非您告诉它在哪里寻找这些类。您需要找到类似 javaee.jarservlet.jar 的东西——Tomcat 应该将它们包含在它的 libs/ 目录中,虽然我忘记了正是他们所谓的。

然后使用 javac -cp path/to/javaee.jar 将它们添加到编译命令 ... 例如。

这实际上不是 Tomcat 或 J2EE 特有的,它只是基本的 Java 编译。

关于jakarta-ee - 编译错误 - Tomcat,jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799857/

相关文章:

php - 使用 php 创建 API 时的 RESTful API 设计模式

jakarta-ee - 我可以使用 apache wink (JAX/RS) 实现 Hibernate (JSR 303) 方法验证吗

c++ - 另一个混淆与 "Interpretation"的概念有关。请参见

Angular :ngc 还是 tsc?

jsf - SimpleCRUD 登录失败

Java Enterprise Server 与 Glassfish

java - 生产服务器上的 Tomcat、PermGen 和重新部署

java - 资源...不可用

带有 Jersey 的嵌入式tomcat上的java.net.SocketTimeoutException

Java编译不产生.jar