Проблема сервлетов с доступом к подстраницам HTTP 404 Tomcat 10.1 java 11

Я только начал изучать технологию сервлетов и сейчас пытаюсь создать очень простое веб-приложение. Всего несколько страниц, пробую эту штуку. Я могу перейти на стартовую страницу /index.html, но для другой части получаю код состояния HTTP 404:

Сообщение: Запрошенный ресурс [/first] недоступен

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

Мой web.xml в WEB-INF таков:

<?xml version = "1.0" encoding = "UTF-8"?>

<web-app version = "4.0" xmlns = "http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">
</web-app>

Мой FirstServlet.java таков:

package servlet;

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

@WebServlet("/first")
public class FirstServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        pw.println("<html>");
        pw.println("<body>");
        pw.println("Welcome to servlet");
        pw.println("</body>");
        pw.println("</html>");
        pw.close();
    }
}

Контекстный путь — /. Я попробовал urlPatterns в WebServlet аннотации. Я пробую это в сообществе IntelliJ IDEA, с плагином Smart Tomcat, с установленным Tomcat 10.1.24 и с Java 11. Я запустил mvn clean package.

После запуска приложения я могу получить доступ к index.html с помощью http://localhost:8080/, но не могу получить доступ к http://localhost:8080/first.

Я пытаюсь найти решение в течение некоторого времени, но мне не удалось этого сделать. Я тоже читал темы здесь (по крайней мере пытался), но не нашел. Из образа Dockerfile я попробовал это с Tomcat 9.0.89, но получил тот же код состояния HTTP / 404.

Хочу попросить вашей помощи в этом вопросе. Если я могу предоставить какую-либо полезную дополнительную информацию, пожалуйста, дайте мне знать.

Заранее большое спасибо за вашу помощь.

Не удалось выполнить цель org.apache.maven.plugins
Не удалось выполнить цель org.apache.maven.plugins
Опишу, что когда я только начинал изучать Maven, у меня не получалось компилировать и упаковывать.
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
1
0
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Этот код представляет собой очень старую технологию сервлетов и не работает с Tomcat 10.x. Вы можете использовать его с Tomcat 9 или более ранней версией.

Где-то я сделал что-то не так, когда пробовал это с Dockerfile. Но теперь я попробовал и там это работает. Я не знаю, как я могу установить там контекстный путь к / . Но это другой вопрос. Большое спасибо за ваш ответ.

DoWhileFor 07.06.2024 14:36

Другие вопросы по теме