Сервлет WebApp возвращает пустую страницу при развертывании на сервере Tomcat - PullRequest
0 голосов
/ 15 мая 2019

Я работаю над веб-приложением 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...