java.lang.NullPointerException

FoxHu 发布于 2012/04/21 21:39
阅读 938
收藏 0

webapp部署在windowserver2003服务器上,白天访问正常,但是过了一夜,第二天访问的时候报错,错误信息信息如下:
严重:Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
   at com.cmis.dao.NewsDao.selectNewsPart(NewsDao.java:74)
   at org.apache.jsp.index_jsp._jspService(index_jsp.java:75)

其中 NewsDao.java第74行代码为conn.close();用来关闭数据连接将连接返回连接池。
数据库连接池用的是tomcat自带的dbcp连接池,配置如下

 <Resource auth="Container" 
		   driverClassName="com.mysql.jdbc.Driver" 
		   maxActive="100" 
		   maxIdle="30" 
		   maxWait="10000" 
		   name="jdbc/cmis" 
		   password="xxxxxx" 
		   type="javax.sql.DataSource" 
		   url="jdbc:mysql://127.0.0.1:3306/cmisdb" 
		   username="root"/>

为什么系统白天访问正常,夜里没有人访问第二天一访问就有错误信息,重启tomcat就好了,是不是连接失效的原因呢?在网上查了一下,有人说加上
validationQuery="SELECT CURRENT_USER",用来在获取连接前判断连接是否有效,然后再获取连接,不知道这种方法是否有效?是否会影响访问速度?
请高手帮我看看,谢谢!@红薯 

 

加载中
0
红薯
红薯
在 conn.close(); 的时候发生空指针,那么加个判断 if(conn!=null) conn.close();
FoxHu
FoxHu
回复 @红薯 : 好的,谢谢老大!我今晚试试!
红薯
红薯
回复 @hil2010 : 我这边是有加的
FoxHu
FoxHu
@红薯 谢谢,在关闭前确实没有判断是否为null,那么要不要再加上isClosed()判断呢?像这样 if(conn!=null&&!con.isClosed()){ conn.close(); }
返回顶部
顶部