Проблема запуска сервлета - PullRequest
0 голосов
/ 23 апреля 2009

Я вижу проблему при попытке запустить Java-сервлет в Eclipse (Ganymede), я использую Java 1.6 и Apache Tomcat 6.0.

Вот что я делаю:

  1. Стоп Tomcat.
  2. Новый динамический веб-проект.
  3. Позвоните в проект TestProject
  4. Использовать параметры по умолчанию: Context = "TestProject", Context Directory = "WebContent", Java Source Directory = "src"
  5. Щелкните правой кнопкой мыши по проекту и выберите новый сервлет
  6. Использовать пакет по умолчанию и вызывать класс «HelloTest», все остальные параметры являются дефолтными
  7. Изменить сопоставление URL на / hello

Код для сервлета следующий (я редактировал только методы doGet и doPost, все остальное генерируется):

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloTest
 */
public class HelloTest extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloTest() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter writer = response.getWriter();
        writer.write("Hello World");
        writer.flush();
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

}

Вот как я пытаюсь запустить проект: 1. Сохранить проект 2. Щелкните правой кнопкой мыши по проекту и выберите запустить на сервере. 3. Выберите существующий сервер Tomcat 4. Нажмите Готово.

Когда я пытаюсь перейти к http://localhost:8080/TestProject/hello Я получаю исключение о том, что класс не найден.

javax.servlet.ServletException: Wrapper cannot find servlet class HelloTest or a class it depends on
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:619)

первопричина

java.lang.ClassNotFoundException: HelloTest
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

Я что-то не так делаю?

Если я добавлю страницу .jsp с именем test.jsp, она отлично отобразится, поэтому я знаю, что Tomcat работает и обслуживает страницы, и что у меня правильный путь.

1 Ответ

2 голосов
/ 23 апреля 2009

Сначала проверьте, правильно ли развернут класс. Смотри также этот вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...