您好,我有一个工作高效的 web 应用程序的开发版本,这让我很头疼。当我登录时,我收到以下错误,而 admin.jsp 正在尝试显示文件夹结构。
org.apache.jasper.JasperException: Exception in JSP: /admin/admin.jsp:133
130: GenDisplay display = null;
131: if(null==oldDisplay || true==oldDisplay.checkIsOld()) {
132: display = new GenDisplay(oldDisplay);
133: display.genTree(((CompanySession)ppa).getRootOrdner(), ((CompanySession)ppa).getRootType(), user.getUID(), out);
134: ((CompanySession)ppa).setGenDisplay(display);
135: } else {
136: display = oldDisplay;
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause
java.lang.NullPointerException
ppa.admin.GenDisplay.getKey(GenDisplay.java:185)
ppa.admin.GenDisplay.isOpen(GenDisplay.java:161)
ppa.admin.GenDisplay.genSubTree(GenDisplay.java:49)
ppa.admin.GenDisplay.genSubTree(GenDisplay.java:57)
ppa.admin.GenDisplay.genSubTree(GenDisplay.java:57)
ppa.admin.GenDisplay.genSubTree(GenDisplay.java:57)
ppa.admin.GenDisplay.genTree(GenDisplay.java:42)
org.apache.jsp.admin.admin_jsp._jspService(admin_jsp.java:606)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
这是第 606 行代码块附近的 admin_jsp.java 以生成错误:
GenDisplay oldDisplay = ((CompanySession)ppa).getGenDisplay();
GenDisplay display = null;
if(null==oldDisplay || true==oldDisplay.checkIsOld()) {
display = new GenDisplay(oldDisplay);
display.genTree(((CompanySession)ppa).getRootOrdner(), ((CompanySession)ppa).getRootType(), user.getUID(), out);
((CompanySession)ppa).setGenDisplay(display);
} else {
display = oldDisplay;
}
//out.println(((CompanySession)ppa).getRootOrdner());
//
int currentOrdner = ((CompanySession)ppa).getRootOrdner();
int currentOrdnerType = ((CompanySession)ppa).getRootType();
if(null!=oldDisplay) {
currentOrdner = oldDisplay.getCurrentOrdner();
currentOrdnerType = oldDisplay.getCurrentOrdnerType();
} else {
display.openOrdner(((CompanySession)ppa).getRootOrdner(), ((CompanySession)ppa).getRootType());
}
所以我排序传递给 display.genTree() 的变量之一是 null,这就是 NullPointerException 的原因。这个开发完全是从工作生产版本复制的,为什么在这里抛出错误而不是在生产版本上?我很困惑。有人有想法吗?提前致谢!
ps:我比较了java版、tomcat版、编译器版。我为两个 tomcat 重新建立了相同的设置。我比较了 mysql 服务器版本和设置。它们几乎是相同的版本和设置。与所涉及的软件没有主要版本差异。我尝试了较新版本的tomcat(6,7)并得到了不同的错误,所以这让我更加困惑。我真的需要帮助,因为我没有编写 webapp,而且我是 java 新手。