listener 使用问题

[code="java"]package com.listener;

import java.util.Timer;

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

import com.utils.MyTask;

public class MyListener implements ServletContextListener {

private static Timer timer; 


@Override
public void contextDestroyed(ServletContextEvent event) {
    timer = new Timer(false);
    //设置任务计划,启动和间隔时间
   timer.schedule(new MyTask(), 0, 2000);
}

@Override
public void contextInitialized(ServletContextEvent event) {

    timer.cancel();//(MyListener.java:25)

java.lang.NullPointerException

}

}[/code]

严重: Exception sending context initialized event to listener instance of class com.listener.MyListener
java.lang.NullPointerException
at com.listener.MyListener.contextInitialized(MyListener.java:25)

为什么启动tomcat就报空指针错误?
雪地等解答

我晕,你代码都写错位置了

修改如下
[code="java"]
package com.listener;

import java.util.Timer;

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

import com.utils.MyTask;

public class MyListener implements ServletContextListener {

private static Timer timer; 


@Override
public void contextDestroyed(ServletContextEvent event) {
    timer.cancel();

}

@Override
public void contextInitialized(ServletContextEvent event) {
    timer = new Timer(false);
    //设置任务计划,启动和间隔时间
   timer.schedule(new MyTask(), 0, 2000);




}

}

[/code]

个人认为,这个程序如果不报空指针的话,那才真是出了鬼了。

timer.cancel();
timer这个时候还没有初始化.

先初始化一下吧