解決方法:(方法也是來源於網絡中,我只是再次分享。或者把零散的整合在一起說了)
首先建立一個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>