Eclipse - сервлет перестает возвращать 404 только после экспорта в файл WAR - PullRequest
0 голосов
/ 07 мая 2020

Я следую определенному курсу и пытаюсь создать сервлет с помощью Eclipse.

Я пробовал следующий сценарий ios:

  • JRE: 8, 10, 11
  • Dynami c веб-модуль версия: 3, 4
  • Целевая среда выполнения: Apache Tomcat v9.0

Что произошло

В каждой комбинации вышеперечисленного сценарий ios, вот шаги, которые я выполнил: щелкните правой кнопкой мыши, чтобы создать новый веб-проект Dynami c -> щелкните правой кнопкой мыши, чтобы создать сервлет внутри пакета (не пакет по умолчанию) -> добавьте response.getWriter().println("<h1>Hello </h1>"); внутри метод doGet -> добавить servlet-api.jar в путь сборки -> Перезагрузить сервер -> Запустить класс сервлета на сервере

Во всех сценариях ios я получаю ошибку 404, как показано ниже :

Описание: исходный сервер не нашел текущего представления для целевого ресурса или не желает раскрывать его существование

Во всех сценариях ios, после того, как я случайно экспортировал проект в файл WAR, ошибка исчезла, и сервлет заработал.

Я пытаюсь создать новые проекты, чтобы проверить свою гипотезу, и та же ситуация продолжается.

Вот полный код сервлета в одном из сценариев ios:

package servlets;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/HelloWorld5")
public class HelloWorld5 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public HelloWorld5() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.getWriter().println("<h1>Hello 5</h1>");
    }

}

Я проверил следующий вопрос, но он не отвечает на мой вопрос

Сервлет возвращает «HTTP-статус 404. Запрошенный ресурс (/ servlet) недоступен»

Вопрос

Пожалуйста, помогите мне понять, почему все мои проекты не работают раньше и будут работать после их экспорта в файлы WAR.

Обновления на основе комментариев:

Запрошенный URL: http://localhost: 8080 / MyHelloServlet5 / HelloWorld5

ContextPath: введите описание изображения здесь

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