我正在使用Servlet 2.5在Maven Web应用程序上工作,我已经制作了两个Servlet,它们连接到数据库,检索一些数据,然后重定向到两个jsp页面。
在我的本地tomcat服务器上运行该应用程序时,一切正常,问题是作为.war部署在Linux服务器上并尝试访问主servlet后,tomcat返回空白页。访问第二个servlet的url模式时也会发生同样的情况。
我认为问题出在方法getRequestDispatcher方法上,由于空指针异常,该方法未重定向到jsp。由于该应用在我的计算机上运行没有错误,因此我无法对其进行调试。
如果您有任何建议,我将不胜感激。
我尝试使用不同版本的tomcat(v7和v9),更改了web.xml文件上的servlet映射。
项目结构:
-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>
我正在使用此URL访问ServletIndex(主页) http://localhost:8080/myprojectname/ (ServletIndex指向index.jsp)
第二页与此 http://localhost:8080/myprojectname/altro (Servlet 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();
}