Exception in thread "HouseKeeper" java.lang.NullPointerException

Exception in thread "HouseKeeper" java.lang.NullPointerException 雖然這個錯誤不影響項目,但是項目中的 class 類一改動 就無法自動啓動起來了。因爲這個錯誤導致的。很是麻煩!

解決方法:(方法也是來源於網絡中,我只是再次分享。或者把零散的整合在一起說了)

首先建立一個servlet類:

package cn.ydc.framework.util;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.logicalcobwebs.proxool.ProxoolFacade;
/*
 * 此類用來處理 在class類進行修改的時候 保存了之後服務自動重新啓動 報:
 *  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 
 */
public class HouseKeeperServlet extends HttpServlet  {
  
 /**
  * 
  */
 private static final long serialVersionUID = 4829418704873725291L;

 public void destroy() {
  //此處添加處理 
  ProxoolFacade.shutdown();
 }

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

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

 }

}

web.xml  中加入:

<!-- for resolving HouseKeeper bug-->
  <servlet> 
    <servlet-name>loadServlet</servlet-name> 
    <servlet-class>cn.ydc.framework.util.HouseKeeperServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
  </servlet>
發佈了19 篇原創文章 · 獲贊 9 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章