服务器启动ServletContextListener的contextInitialized方法被执行三次,天拉,怎么会这样.

xwjrun 2007-12-13 03:03:10
用ServletContextListener和Timer,TimerTask做了个定时发送邮件的功能.
在本地(windows)测试运行正常,但是移到服务器上(linux)就出现问题.
问题是:
容器自动重启以下,ServletContextListener的contextInitialized方法会被执行三次,也就是说时间会被出发三次.然而任务类TimerTask的子类就也同样被执行三次.
怎么会这样了?
请各位朋友们帮兄弟一把.找原因找了两天了.

public class ContextListner implements ServletContextListener {

private Timer timer=null;
public void contextInitialized(ServletContextEvent event) {
timer = new Timer(true);
System.out.println(("初始化......"));
timer.schedule(new RemindEmailTimerTask(),60*1000,7*24*60*60*1000);//1000*60*60*24 一天 可以设置一个月执行一次
}

public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
System.out.println("结束。");
}

}


<listener>
<listener-class>mypage.com.ContextListner</listener-class>
</listener>
...全文
540 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zr0243 2008-03-31
  • 打赏
  • 举报
回复
我也遇到同样问题,关注一下,请高手出来解答一下.
xwjrun 2007-12-13
  • 打赏
  • 举报
回复
没人说两句?
xwjrun 2007-12-13
  • 打赏
  • 举报
回复
朋友们过来看看,帮分析分析,应该是什么原因?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧