Ошибка 404 при доступе к сервлету в Tomcat 9.0.91

Я развернул приложение LearnServlet на сервере Tomcat 9.0.91. Основная страница (index.jsp) открывается корректно по адресу http://localhost:8080/LearnServlet/.

Однако при попытке открыть сервлет по адресу http://localhost:8080/LearnServlet/hello получаю ошибку 404. В логах catalina.out и localhost отсутствуют ошибки.

Детали окружения:

  • ОС: Windows 11 (64-bit)
  • Java: JDK 22.0.1 (Oracle)
  • Tomcat: 9.0.91
  • Структура проекта*
LearnServlet.war/
    index.jsp
    WEB-INF/
        classes/
            com/example/HelloServlet.class

Код сервлета:

java

import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.io.IOException;
@WebServlet("/hello")
public class MainServlet extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        PrintWriter printWriter = resp.getWriter();
        printWriter.write("<html>\n" +
                "    <body>\n" +
                "        <h1>Hello User!</h1>\n" +
                "    </body>\n" +
                "</html>");
        printWriter.close();
    }
}

Что пробовал:

  1. Убедился, что Tomcat запускается без ошибок (логи catalina.out и localhost).
  2. Проверил, что основная страница index.jsp открывается.
  3. Структура WAR-файла соответствует требованиям (WEB-INF и .class-файлы на месте).
  4. Пробовал аннотации результат одинаковый.
  5. Очистил кэш браузера и проверил с разными браузерами.

zВопрос:
Что может быть причиной ошибки 404 при доступе к сервлету? Какие дополнительные проверки стоит выполнить?