org.apache.catalina.core.StandardWrapperValve invoke的解决办法
来源:互联网 发布:java银行系统开发 编辑:程序博客网 时间:2024/05/25 05:36
故障码:
Servlet.service() for servlet servletAction threw exceptionjava.lang.NullPointerExceptionat com.dbdao.mysql.mySqlConnection.getClose(mySqlConnection.java:173)at com.service.stuInfoService.delete(stuInfoService.java:109)at com.action.servletAction.delete(servletAction.java:374)at com.action.servletAction.doPost(servletAction.java:79)
网上查找的解决办法:
1.servlet或jsp中,重复调用response的 getOutputStream(),response.getWriter()方法。
2.form表单里没有 method="post" action=""参数。
3.看JDBC操纵数据库的代码,仔细看,例如调用的对象的属性为null。
Connection conn=null; 之后之就调用了conn的方法。
以上三点我发现写的太笼统,容易让人摸不着头脑,不过经过查找,我终于发现自己代码的错误的地方了,原来是关闭数据库的连接没经过判断,直接就关闭了,这是我的故障源代码,现我将其贴出。
错误源代码:
public void getClose() { // TODO Auto-generated method stub //关闭结果集 try { //结果集关闭方法 rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //关闭声明的sql语句 try { //关闭声明的sql语句方法 pstmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //卸载驱动 try { //驱动卸载方法 con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
这知道,虽然在JavaWeb中报错很明显,直接以错误页面的形式满屏显示,但是在Java项目中则并不明显,比如说我一直用junit进行程序代码测试,由于我关注的焦点在控制台,控制台中的内容完全按照我写的代码在运行,而junit的报错却偏偏容易被忽略,因为自己的程序只写了一部分,不全很正常,而junit又恰恰只是测试了这不全代码的可运行的一部分,所以说这里的报错往往很难被注意到。
下面是改正后的代码:
/* * 关闭方法 * */ public void getClose() { // TODO Auto-generated method stub //关闭结果集 try { //结果集关闭方法 if(rs!=null){ rs.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //关闭声明的sql语句 try { //关闭声明的sql语句方法 if(pstmt!=null){ pstmt.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //卸载驱动 try { //驱动卸载方法 if(con!=null){ con.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
还有比较容易错的地方是页面带参数进行跳转,由于跳转之后的页面本身也要执行一部分sql语句,比如说进行添加、修改、删除等操作后就自动跳转到新页面进行查询,整个过程是自动的,此时就有可能存在参数丢失的情况,所以说在这里也经常会出现该错误。
总之,出现该错误的地方往往是连接的环节,在关闭连接之前一定要判断连接是否已关闭再执行关闭连接操作,在连接调用之前也要判断连接的东西是否存在。
0 1
- org.apache.catalina.core.StandardWrapperValve invoke的解决办法
- org.apache.catalina.core.StandardWrapperValve invoke的解决办法
- 备忘录:org.apache.catalina.core.StandardWrapperValve invoke
- org.apache.catalina.core.StandardWrapperValve invoke错误
- org.apache.catalina.core.StandardWrapperValve invoke
- org.apache.catalina.core.StandardWrapperValve invoke
- org.apache.catalina.core.StandardWrapperValve invoke
- org.apache.catalina.core.StandardWrapperValve invoke
- java org.apache.catalina.core.StandardWrapperValve invoke
- JSONArray().fromObject(); 出现org.apache.catalina.core.StandardWrapperValve invoke错误的解决办法
- Tomcat 报异常org.apache.catalina.core.standardwrappervalve invoke
- Tomcat 报异常org.apache.catalina.core.standardwrappervalve invoke
- Tomcat 报异常org.apache.catalina.core.standardwrappervalve invoke
- Tomcat 报异常org.apache.catalina.core.standardwrappervalve invoke
- JavaWeb开发中遇到的错误:org.apache.catalina.core.StandardWrapperValve invoke
- 由于粗心引起的org.apache.catalina.core.StandardWrapperValve invoke信息: Servlet action is currently unavailab
- org.apache.catalina.core.StandardWrapperValve 报错
- javaweb网上书店开发之异常处理----org.apache.catalina.core.StandardWrapperValve invoke
- 闭锁CountDownLatch和栅栏CyclicBarrier之异同举例
- 从android到ios
- SHELL脚本if语句
- 第四章 栈与队列
- Android ----Intent 的各种打开文件 doc word
- org.apache.catalina.core.StandardWrapperValve invoke的解决办法
- 选择主键:自然键还是代理键?
- Markdown 文本格式
- 重写listview,横向滑动出现删除按钮,点击按钮删除item
- eclipse内存溢出问题
- Mac OS下关闭本地TimeMachine备份节省磁盘空间
- IOS CoreText --- 基本用法
- DP(Dynamic Programming) demo: optimal substructure(recursion) + overlapping structure(memo)
- 每日一题30:拓补排序