java – 访问会话属性时的Tomcat和空指针异常
我一直在使用net beans ide开发一个项目6个月,以便开发一个电子学习web应用程序.所有东西在net beans中运行良好.(该项目来自现有的资源,我不得不修改它,我没有开发整个应用程序我在net beans中使用apache tomcat 7.当我创建war文件并部署它没什么工作.我在我的会话变量中得到空指针异常,就像我从来没有给它们一个值.我无法理解是什么问题.Iinside net beans我使用相同的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中清理和构建时,新类没有编译,而net bean使用了以前的来自WEB-INF文件夹的源.当我手动删除WEB-INF / Classes中的所有.class文件时,在下一个clean-build中使用了新文件 解决方法
因此,第31行如下: if((Integer)session.getAttribute("professor")<=1 && ... 这里的NPE在技术上只能有两个原因: >会话为null,getAttribute()将因NPE而失败. Integer professor = session.getAttribute("professor"); if ((professor == null || professor <= 1) && ... 也许你需要在更高层次解决它,即确保“教授”attribtue永远不为空. 与具体问题无关,Java code belongs in Java classes.它将使调试,测试和维护变得更加容易. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 多线程 – 有没有办法杀死GHCi会话中的所有分叉线程而不重新
- javax.net.ssl.SSLHandshakeException
- 夯实Java基础系列5:Java文件和Java包结构
- 如何在不双击JNLP的情况下自动启动java web启动
- 为什么选择行/单元格时,我的Java自定义单元格渲染器不会显示
- 多线程 – 写入BufferedWriter的最佳Scala线程安全方法是什
- 如何在java中使用apache math 3.0生成直方图的bin?
- Java创建ZIP压缩文件的方法
- Springboot 使用 JSR 303 对 Controller 控制层校验及 Serv
- JavaFx 2.0游戏引擎/框架 – JavaFx 2.0将如何改变Java游戏