Я пытаюсь настроить очень простой проект JEE с Eclipse + Tomcat, используя один сервлет и JSP. Однако я получаю внутреннюю ошибку сервера HTTP 500 при попытке доступа к его URL-адресу http://localhost:8080/test/toto
. Отображаемое сообщение об исключении:
Невозможно вызвать "javax.servlet.RequestDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)", поскольку возвращаемое значение "javax.servlet.ServletContext.getRequestDispatcher(String)" равно null.
Вот мой тестовый код сервлета:
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test extends HttpServlet {
public void doGet( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException{
this.getServletContext().getRequestDispatcher( "/WEB-INF/test.jsp" ).forward( request, response );
}
}
Файл test.jsp должен просто отображать сообщение: «Создано JSP».
Вот содержание web.xml
для справки:
<?xml version = "1.0" encoding = "UTF-8"?>
<web-app
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version = "3.0">
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>com.sdzee.servlets.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/toto</url-pattern>
</servlet-mapping>
</web-app>
Соответствующий журнал Tomcat гласит:
0:0:0:0:0:0:0:1 - - [10/дек/2020:14:29:47 +0100] "GET /test/toto HTTP/1.1" 500 1606
Это проект древовидности
Редактировать: другие вещи, которые я недавно пробовал: переустановите Eclipse + Tomcat на другом компьютере и запустите снова, переместите test.jsp непосредственно в WebContent и получите доступ http://localhost:8080/test/test.jsp
: приводит к ошибке HTTP 404 ressource not found.
Я только что заметил, что до того, как я создам свой сервлет, я могу получить доступ к любому файлу, который я создаю в WebContent в http://localhost:8080/test/whatever.jsp
, но я больше не могу этого делать, как только добавлю сервлет и установим сопоставление в web.xml
Я редактировал файл web.xml
сервера Tomcat, а не файла проекта, поэтому ничего не работало должным образом.
Я перепутал здесь форматирование, теперь все должно быть в порядке, я удалил лишние '>'