Я работаю над веб-приложением Maven с использованием Servlet 2.5, я создал два сервлета, которые подключаются к базе данных, получают некоторые данные и затем перенаправляют на две страницы jsp.
При запуске приложения на моем локальном сервере tomcat все работает нормально, проблема заключается в том, что после развертывания на сервере linux в формате .war и при попытке доступа к основному сервлету tomcat возвращает пустую страницу. То же самое происходит при доступе к шаблону URL второго сервлета.
Я думаю, что проблема в методе getRequestDispatcher, который не перенаправляет на jsp из-за исключения нулевого указателя. Поскольку приложение работает без ошибок на моей машине, я не могу его отладить.
Если у вас есть предложение, я был бы благодарен.
Я пытался использовать разные версии tomcat (v7 и v9), меняя сопоставления сервлетов в файле web.xml.
Структура проекта:
-myprojectname
- / META-INF
- / WEB-INF
-index.jsp
-altro.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_2_5.xsd"version="2.5">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>ServletIndex</servlet-name>
<servlet-class>com.myprojectname.servlets.ServletIndex</servlet-class>
</servlet>
<servlet>
<servlet-name>ServletAltro</servlet-name>
<servlet-class>com.myprojectname.servlets.ServletAltro</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletIndex</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletAltro</servlet-name>
<url-pattern>/altro</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/</welcome-file>
</welcome-file-list>
</web-app>
Я захожу на ServletIndex (главная страница) с этим URL
http://localhost:8080/myprojectname/
(ServletIndex указывает на index.jsp)
и вторичная страница с этим другим
http://localhost:8080/myprojectname/altro
(Сервлет Альтро указывает на altro.jsp)
This is a part of the ServletIndex servlet, method doGet()
try {
RequestDispatcher rd = null;
rd = request.getRequestDispatcher("/index.jsp");// I think this is returning null, I can't replicate it on my machine
request.setAttribute("statusDB", this.msj); //msj is a string
rd.forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}