Я развернул приложение 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();
}
}
Что пробовал:
- Убедился, что Tomcat запускается без ошибок (логи
catalina.out
иlocalhost
). - Проверил, что основная страница
index.jsp
открывается. - Структура WAR-файла соответствует требованиям (
WEB-INF
и.class
-файлы на месте). - Пробовал аннотации результат одинаковый.
- Очистил кэш браузера и проверил с разными браузерами.
zВопрос:
Что может быть причиной ошибки 404 при доступе к сервлету? Какие дополнительные проверки стоит выполнить?