当前位置: 代码迷 >> J2EE >> 做定时器时的监听器 报错 严重: Error configuring application listener of class test.timer.Time,该怎么处理
  详细解决方案

做定时器时的监听器 报错 严重: Error configuring application listener of class test.timer.Time,该怎么处理

热度:550   发布时间:2016-04-22 02:01:49.0
做定时器时的监听器 报错 严重: Error configuring application listener of class test.timer.Time
直接上代码吧,高手们帮我看看
web.xml:
XML code
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    id="WebApp_ID" version="2.5">    <listener>        <listener-class>test.timer.TimerListener</listener-class>    </listener>    <welcome-file-list>        <welcome-file>index.jsp</welcome-file>    </welcome-file-list></web-app>

Java code
package test.timer;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class TimerListener implements ServletContextListener {    @SuppressWarnings("unused")    private ServletContext servletContext = null;    private Timer timer = null;    /**     * 开始执行     */    @Override    public void contextInitialized(ServletContextEvent e) {        e.getServletContext().log("init !");        timer = new Timer(true);        // 获得当天的日期        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");        Date date = new Date();        // 定义开始时间字符串        String timeStr = "12:00:00";        timeStr = sdf.format(date) + timeStr;        // 获得当天的指定时间的date对象        sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");        try {            date = sdf.parse(timeStr);        } catch (ParseException e1) {            e1.printStackTrace();        }        // 判断今天的执行时间是否已经过去,如果过去则改为明天        if (date.getTime() < System.currentTimeMillis()) {            date = new Date(date.getTime() + 24 * 60 * 60 * 1000);        }        timer.schedule(new TestTimer(), date, 24*60*60 * 1000);    }    /**     * 销毁     */    @Override    public void contextDestroyed(ServletContextEvent e) {        timer.cancel();        e.getServletContext().log("destroyed");    }}

环境没有问题,如果web.xml去掉<listener>可以正常启动。项目就这么几个文件

------解决方案--------------------
试了一下,可以启动.你这个错误是java.lang.ClassNotFoundException: test.timer.TimerListener
啊,你把项目重新编译,然后在web服务器上重新发布下.
  相关解决方案