Ошибка компиляции - Tomcat, JSP - PullRequest
0 голосов
/ 18 октября 2011

All

Я только что установил Apache Tomcat, и при тестировании установки была показана страница Apache «Успешно установлена». Я выполнил пример HelloWorld без каких-либо проблем. Итак, теперь я создал свое собственное веб-приложение под \apache-tomcat-XXX\webapps\mine со следующими 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 env.):

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

1 Ответ

2 голосов
/ 18 октября 2011

Ваш класс Java использует другие классы Java, которые не являются частью Java SE ("обычная" или "настольная" Java) - например, классы Java EE в javax.servlet.Таким образом, компилятор не узнает о них, пока вы не укажете, где искать эти классы.Вам нужно найти что-то вроде javaee.jar или servlet.jar - Tomcat должен содержать их в своем libs/ каталоге, хотя я точно забываю, как они называются.

Затем вы добавляете их в команду компиляции.с javac -cp path/to/javaee.jar ... например.

Это на самом деле ничего особенного для Tomcat или J2EE, это просто базовая компиляция Java.

...