我一直在使用net beans ide开发一个项目6个月,以开发一个电子学习web应用程序。在net beans内部一切正常工作(该项目来自现有源,我不得不修改它,我没有开发整个应用程序)我在net beans中使用apache tomcat 7.当我创建war文件并部署它时,没有任何工作。我在会话变量中收到空指针异常,就像我从未给它们一个值。我不明白是什么问题。内部净豆我使用相同的tomcat。当访问会话属性时,Tomcat和空指针异常
org.apache.jasper.JasperException: An exception occurred processing JSP page /System.jsp at line 31
28: Integer intObj = new Integer(project_id);
29: httpsession.setAttribute("project_id",intObj);
30: Hashtable projects=(Hashtable)session.getAttribute("projectsprofessor");
31: if((Integer)session.getAttribute("professor")<=1 &&
32: projects.get(project_id)==null)
33: {
34: request.getSession().setAttribute("errorMessage","This project belongs to another professor!");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:553)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.NullPointerException
org.apache.jsp.System_jsp._jspService(System_jsp.java:149)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
这发生在我的大部分页面上。奇怪的是,某些会话变量不为空。 我不明白在哪里重点!
谢谢。
//编辑:解决问题是在源代码中,他们忘记了WEB-INF文件夹中的* .class文件,所以当我在NetBeans中清理并构建新类时,当我手动删除WEB-INF/Classes中的所有.class文件时,使用新文件
hm ....我在登录servlet中设置此属性。它不能为null,如果它为null,则应用程序无法继续。我刚刚发现的另一个症状是.war中的.properties文件是旧的,而不是修改过的。可能这是发生在类文件上吗?例如,以前的登录Servlet没有存储教授信息。 – nikosdi
这个例外不是撒谎,也不是为了装饰而抛出。这绝对是'空'。可能你的登录servlet代码只是虚假的,或者你的classpath只是肮脏的,因为你的其他症状表明。重建和清理一切。 – BalusC
谢谢!你是对的!异常不是说谎.....问题是net beans正在编译以前的文件。我不明白为什么我可能会手动创建战争。 – nikosdi