Exception in thread "HouseKeeper" java.lang.NullPointerException

文章详细介绍了使用Proxool时遇到的HouseKeeper线程NullPointerException问题,提供了一个简单有效的解决方法:在web.xml中配置LoadServlet,并在其中调用ProxoolFacade.shutdown()来显式关闭Proxool。通过多次点击页面触发bug的再现过程,最终通过此方法成功避免了bug的频繁出现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用proxool了...版本0.9.1

时不时会报异常如下:
Exception in thread "HouseKeeper" java.lang.NullPointerException
at org.logicalcobwebs.proxool.HouseKeeperController.getHouseKeeperToRun(HouseKeeperController.java:53)
at org.logicalcobwebs.proxool.HouseKeeperThread.run(HouseKeeperThread.java:33)



参考:

[url]http://yang7527.iteye.com/blog/427512[/url]
[url]http://harbey.iteye.com/blog/888966[/url]
[url]http://topic.youkuaiyun.com/u/20080708/16/823ff6cc-a062-40e9-9858-169013138487.html[/url]

[quote]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[/quote]


[url]http://hi.baidu.com/dannyif/blog/item/66f4cdd749ca3f2806088b5a.html[/url]
今天应用启动后,页面点击几下就报出 Exception in thread "HouseKeeper" java.lang.NullPointerException; 多点几次会重复出现这bug, 然后在网上找到一个比较妙的解决办法:

LoadServlet.java :

package com.fsti.ec.common;

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;

public class LoadServlet extends HttpServlet {
public void init() throws ServletException {
}

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>com.fsti.ec.common.LoadServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值