Listener中遇到的问题 (2009-10-16)

今天在做一个web应用,
环境是:
Tomcat -6.0
JDK -1.5
Hibernate 3.x

新写了一个listener,部署到Tomcat里, 在eclipse中调试中, 出现了一件奇怪的事.

tomcat不断的重启,最后定位到出现问题的地方, 就是在 contextInitialized中我调用

了Hibernate的查询方法, 这个问题真奇怪!

Listener的相关代码:


public class DefaultTaskListener implements ServletContextListener {

private static final Log log = LogFactory.getLog(DefaultTaskListener.class);
private TaskScheduler scheduler = TaskScheduler.getInstance();

/***
* 自动执行
* 2008-5-19 16:38
*/
public void contextInitialized(ServletContextEvent sce) {
if (log.isDebugEnabled()){
log.debug(":::contextInitialized fired");
}
scheduler.start();
//why this method raise server to reload ,when find() is executed.
scheduler.initTasks();
//--------------------------------------
}

public void contextDestroyed(ServletContextEvent sce) {
if (log.isDebugEnabled()){
log.debug("DefaultTaskListener contextDestroyed is execute!");
}
try{
scheduler.shutdown();
if (log.isDebugEnabled()){
log.debug("DefaultTaskListener stop is success!");
}
}catch(Exception ex){
log.error("DefaultTaskListener stop is fail!");
ex.printStackTrace();
}
}

TaskScheduler.initTasks()的部分代码

public void initTasks() {
int successCount = 0;
TaskInfoSrv srv = new TaskInfoSrv();
try{
List list = (List) srv.findPOs(null, null, null);
//这句执行完后tomcat就会不停地重启
}catch(...){
}
// other code

暂时还没解决,先写一个Servlet完成相同的功能再说
package com.hexiang.utils; import java.awt.Component; import javax.swing.JOptionPane; /** * This class ExceptionManager and its subclasses are a form of * Exception. It is used to wrap all the Throwable instances * and handle them in a unified way. It will show the information which consists of * StackTraces and Messages by using JOptionPanel. * * @author Estelle * @version 1.0 * @see java.lang.Exception * @since jdk 1.5 */ public class ExceptionManager extends RuntimeException { private static final long serialVersionUID = -6963187366089365790L; /** * This field alerter is used to show the information the Class offered. * * @see javax.swing.JOptionPane */ private JOptionPane alerter; /** * This static method create an instance of the ExceptionManager by invoking the * constructor ExceptionManager(String msg). * * @param msg The message will pass the specified constructor * @return An instance of the ExceptionManager created by invoking the constructor * ExceptionManager(String msg). */ public static ExceptionManager wrap(String msg){ return new ExceptionManager(msg); } /** * This static method create an instance of the ExceptionManager by invoking the * constructor ExceptionManager(Throwable throwable). * * @param throwable The cause will pass the specified constructor * @return An instance of the ExceptionManager created by invoking the constructor * ExceptionManager(Throwable throwable). */ public static ExceptionManager wrap(Throwable throwable){ return new ExceptionManager(throwable); } /** * This static method create an instance of the ExceptionManager by invoking the * constructor ExceptionManager(String msg,Throwable throwable). * * @param msg The message will pass the specified constructor * @param throwable The cause will pass the specified c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值