今天在做一个web应用,
环境是:
Tomcat -6.0
JDK -1.5
Hibernate 3.x
新写了一个listener,部署到Tomcat里, 在eclipse中调试中, 出现了一件奇怪的事.
tomcat不断的重启,最后定位到出现问题的地方, 就是在 contextInitialized中我调用
了Hibernate的查询方法, 这个问题真奇怪!
Listener的相关代码:
TaskScheduler.initTasks()的部分代码
暂时还没解决,先写一个Servlet完成相同的功能再说
环境是:
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完成相同的功能再说