Exception in Thread "HouseKeeper" java.lang.NullPointerException

使用Proxool连接池, 当在重启Tomcat容器时,出现

 

   Exception in Thread "HouseKeeper" java.lang.NullPointerException

 

空指针异常错误。

 

原因是:

写道
This is because Proxool is not being shutdown properly. If the JVM stops then Proxool recognises that and shuts down gracefully, but if you redeploy Proxool into some environments (for example, a servlet container) then Proxool needs to be explicitly told so by calling ProxoolFacade. shutdown(). If you have a servlet container then you could put it in the servlet's destroy() method. Alternatively, use the ServletConfigurator to both configure and shutdown Proxool

 

 

解决方法如下:

 

    1. 在Servlet的destroy()方法中显式地proxool关闭连接池:ProxoolFacade.shutdown();

 

Java代码 复制代码
  1. public class ProxoolServlet extends HttpServlet {    
  2.     public void init() throws ServletException {    
  3.     }    
  4.   
  5.     public void destroy() {    
  6.         ProxoolFacade.shutdown();    
  7.     }    
  8.   
  9.     public void doPost(HttpServletRequest request, HttpServletResponse response) throws    
  10.         ServletException, IOException {    
  11.         doGet(request,response);    
  12.     }    
  13.     public void doGet(HttpServletRequest request, HttpServletResponse response) throws    
  14.         ServletException, IOException {    
  15.            
  16.     }    
  17.   
  18. }   
Java代码 复制代码  收藏代码
  1. public class ProxoolServlet extends HttpServlet {    
  2.     public void init() throws ServletException {    
  3.     }    
  4.   
  5.     public void destroy() {    
  6.         <SPAN class=hilite4><SPAN style="BACKGROUND-COLOR: #00ffff">ProxoolFacade</SPAN></SPAN>.<SPAN class=undefined>shutdown</SPAN>();    
  7.     }    
  8.   
  9.     public void doPost(HttpServletRequest request, HttpServletResponse response) throws    
  10.         ServletException, IOException {    
  11.         doGet(request,response);    
  12.     }    
  13.     public void doGet(HttpServletRequest request, HttpServletResponse response) throws    
  14.         ServletException, IOException {    
  15.            
  16.     }    
  17.   
  18. }   
public class ProxoolServlet extends HttpServlet { 
    public void init() throws ServletException { 
    } 

    public void destroy() { 
        <span class="hilite4"><span style="BACKGROUND-COLOR: #00ffff">ProxoolFacade</span></span>.<span class="undefined">shutdown</span>(); 
    } 

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws 
        ServletException, IOException { 
        doGet(request,response); 
    } 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws 
        ServletException, IOException { 
        
    } 

} 

 

   2. 将该Servlet配置到web.xml中:

 

Java代码 复制代码
  1. <servlet>    
  2.   <servlet-name>proxoolServlet </servlet-name>    
  3.   <servlet-class>xxx.ProxoolServlet</servlet-class>    
  4.   <load-on-startup>1</load-on-startup>    
  5. </servlet>   
Java代码 复制代码  收藏代码
  1. <servlet>    
  2.   <servlet-name>proxoolServlet </servlet-name>    
  3.   <servlet-class>xxx.ProxoolServlet</servlet-class>    
  4.   <load-on-startup>1</load-on-startup>    
  5. </servlet>   
  <servlet> 
    <servlet-name>proxoolServlet </servlet-name> 
    <servlet-class>xxx.ProxoolServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
  </servlet> 

 

    3. OK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值