0 0

Timer定时器报错5

今天使用Timer写定时程序,tomcat启动的时候出现以下异常信息:

 

严重: Error listenerStart
2012-12-4 9:57:28 org.apache.catalina.core.StandardContext start
严重: Context [/YGCWEB] startup failed due to previous errors
dddddd
2012-12-4 9:57:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/YGCWEB] appears to have started a thread named [Timer-2] but has failed to stop it. This is very likely to create a memory leak.

 

Web.xml部分配置如下:

 

  <listener>
  <listener-class>cn.system.util.listener.SessionListener</listener-class>
 </listener>
    <listener>
  <listener-class>cn.system.util.listener.ContextListener</listener-class>
 </listener> 

    <listener>
  <listener-class>cn.business.bakefile.ListenerTimerAutoBakeFile</listener-class>
 </listener>
  <listener>
  <listener-class>cn.system.task.MyListener</listener-class>
 </listener>

 

MyListener.java如下:

 

package cn.system.task;

import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyListener implements ServletContextListener{

 private Timer myTaskTimer=null;
 @Override
 public void contextDestroyed(ServletContextEvent sce) {
  myTaskTimer=new Timer(true);
  myTaskTimer.schedule(new MyTask(),0,1000*60*60*24);
 }

 @Override
 public void contextInitialized(ServletContextEvent sce) {
  myTaskTimer.cancel();
 }

}

 

MyTask.java如下:

public class MyTask extends TimerTask{

 public void run() {
  System.out.println("dddddd");
 }

 

把web.xml的Listener去掉,启动tomcat可以正常访问,加上后就报严重信息,访问的时候报404

2012年12月04日 10:06

1个答案 按时间排序 按投票排序

0 0

采纳的答案

@Override
public void contextDestroyed(ServletContextEvent sce) {
  myTaskTimer=new Timer(true);
  myTaskTimer.schedule(new MyTask(),0,1000*60*60*24);
}

@Override
public void contextInitialized(ServletContextEvent sce) {
  myTaskTimer.cancel();
}

写反了

contextInitialized 这是初始化  在这里创建
contextDestroyed这是容器销毁  在这里cancel

2012年12月04日 10:11

相关推荐

    lab3-timer0_LED_CCS_

    "lab3-timer0_LED_CCS_" 这个标题表明这是一个实验或项目,编号为“lab3”,主要关注的是使用定时器0(Timer0)来控制LED灯。"CCS"是Code Composer Studio的缩写,它是德州仪器(TI)开发的一种集成开发环境,专门...

    AVR定时器中断初值计算方法

    例如,在使用 16 位定时器 TIMER1,4MHZ 晶振,256 分频,100ms 定时时,需要计算出要累加多少次才能在 1 秒后出发定时器 1 的溢出中断。计算公式为:65536-(4M/256)*0.1=63973.5。 在实现精确的延时函数时,可以...

    在S7-300 S7-400和S7-1200 S7-1500中编程IEC Timer时应该注意什么.pdf

    首先,我们要理解IEC Timer的概念,它是基于国际电工委员会(IEC)61131-3标准的定时器,这种定时器在各种自动化系统中广泛使用,提供了一种统一的编程方式。 **1. 避免多次赋值:** 错误的做法是在程序的不同位置为...

    自动关闭MessageBox

    定时器通过发送特定的消息(通常是`WM_TIMER`)到关联的窗口来触发事件。在上面的代码中,`SetTimer`函数创建了一个定时器,并将其关联到`MessageBox`窗口。当指定的时间(以毫秒为单位)过去后,系统会向该窗口...

    Simulink 的看门狗定时器和计数器:如果仿真运行时间过长或时间步长过多,则会触发错误。-matlab开发

    **看门狗定时器(Watchdog Timer)** 看门狗定时器是一种硬件或软件机制,用于监控系统的正常运行。在Simulink中,这个概念被应用到仿真过程中,主要目的是防止仿真过程无限制地持续下去,消耗过多的计算资源。当一...

    Winform中实现监控CPU内存使用率示例代码.zip

    - 在一个定时器(`System.Windows.Forms.Timer`)的`Tick`事件中,更新`PerformanceCounter`的值,并将结果显示到UI上。定时器间隔可以根据需求设置,比如每秒更新一次。 5. **代码示例**: ```csharp using ...

    stm32f10x_wwdg.rar_stm32WWDG

    在STM32F10X系列中,Watchdog Timer(看门狗定时器,简称WWDG)是一个重要的安全特性,用于防止程序运行失控或进入死循环。 STM32的WWDG,即窗口看门狗定时器,相较于独立看门狗定时器(IWDG),它提供了一个更灵活...

    单片机C语言程序该这样写.pdf

    - `#ifndef_TIMER_CONFIG_H_`和`#define_TIMER_CONFIG_H_`,以及`#include"const.h"`和`#include"oscfrequencydef.h"`等表示了包含头文件的预处理指令。这些指令用于防止头文件被重复包含,并包含所需的其他配置...

    Skynet-启动流程

    - skynet_timer_init()函数:初始化定时器模块,用于处理定时事件。 - skynet_socket_init()函数:初始化网络模块,负责网络通信相关操作。 - skynet_context_new()函数:加载日志模块,负责记录日志信息。 - ...

    原生js实现jquery函数animate()动画效果的简单实例

    - 对象的属性不必直接声明,因此即使对象没有某个属性,函数也不会报错。 - 必须为每个对象分别设置定时器,否则多个对象使用同一个定时器会导致动画不流畅。 - 在遍历对象的属性时,需要判断每一个属性是否已经达到...

    车载网络测试 - CAPL(vTESTStudio) - CAN/CANFD - 自动化开发

    msTimer cycleMsgTimer; } // 初始化定时器 setTimerCyclicperiod(cycleMsgTimer, 200); // 定义发送次数 int sendCount = 0; on cycleMsgTimer { output(cycleMsg); sendCount++; if (sendCount &gt;= 10) { // ...

    vue项目每30秒刷新1次接口的实现方法

    同时,`timer`变量用于存储定时器ID,以便在组件销毁时进行清理。 总结来说,实现Vue项目中每30秒刷新一次接口的关键在于利用`setInterval`设置周期性任务,并在周期性任务中使用`setTimeout`来避免因定时器叠加...

    MATLAB GUI设计中常见错误

    1. **定时器(timer)**:通过设置定时器的周期,可以定期执行某些操作。 2. **显示图片**:每次定时器触发时,加载并显示一张新的图片。 **注意事项**: - 确保图片加载路径正确。 - 考虑图片加载速度和显示速度是否...

    基于C语言和lua编写的跨平台(支持windows和linux)网络库+使用说明.zip

    基于c+lua编写的跨平台(支持windows和linux)...如果没有声明,启动会报错。 编译lua **Linux:** ```shell cd 3rd/lua make linux ``` **Windows(for MinGW):** ```shell cd 3rd/lua make mingw ``` 编译xnet **

    MFC编写的电脑桌面时钟

    在桌面时钟程序中,我们需要处理WM_TIMER消息,以便在定时器事件发生时更新时间。 5. **资源管理** MFC通过CResourceStub类管理资源,如位图、图标等。在设计时钟界面时,可能会使用到这些资源来美化时钟外观。 6...

    最新大厂前端面试题-笔试题3.doc

    2. 定时器使用定时器时,我们销毁了这个 DOM,但是在定时器中使用了这个 DOM,定时器中就保留了对这个 DOM 的引用,所以需要在清除 DOM 时也要手动清除定时器(timer = null)。 3. 闭包函数导致的泄漏。 4. 没有...

    用于芯圣的hc89s003f4开发板开发教程

    其次,"Timer-T5外部捕获"涉及到的是HC89S003F4内部的定时器功能。定时器T5支持外部信号捕获,允许开发者根据外部输入脉冲调整计数,这对于实时系统中的事件触发和时间间隔测量非常有用。学习如何配置和使用此功能,...

    后台定时定位开机自启系统.zip

    后台定时定位开机自启系统android 类库中, 虽然已经提供了几种...1. 定时的发送定位请求,首先需要 定时器 Timer 和 TimerTask ,来定时地发送定位请求; 2. 在定位的回调函数里,将定位获取的信息保存到本地   

    Jmeter相关使用指导

    添加了集合点之后,需要对 Synchronizing Timer(同步定时器)进行配置,模拟用户组的数量:当模拟用户组数到达设定的数量时开始发起请求 超时时间以毫秒为单位:从第一个并发用户到第二个并发用户到达之间的间隔...

    用VB编写的俄罗斯方块程序,很容易运行和修改

    4. **定时器组件**:通过Timer控件来控制游戏的步进,每到一定时间间隔更新屏幕状态,实现方块的下落。 5. **数组和数据结构**:通常使用二维数组存储当前的游戏板状态,每个元素代表一个方块的位置。 6. **算法...

Global site tag (gtag.js) - Google Analytics