【发布时间】:2009-03-24 13:40:05
【问题描述】:
在我的 Tomcat 日志 (catalina) 中,我收到以下错误,阻止我的应用程序启动:
严重:错误 listenerStart 2009 年 3 月 24 日 13:23:10 org.apache.catalina.core.StandardContext 开始 严重:上下文 [/exampleA] 由于先前的错误而启动失败我不知道我为什么会得到这个。在我的 web.xml 中,我有以下内容
<listener>
<listener-class>
uk.co.a.listener.SessionListener
</listener-class>
</listener>
<listener>
<listener-class>
uk.co.a.listener.SessionAttributeListener
</listener-class>
</listener>
当我注释掉监听器时,它启动得很好。监听器的代码如下:
public class SessionAttributeListener implements HttpSessionAttributeListener {
static Log log = LogFactory.getLog(SessionAttributeListener.class.getName());
public void attributeAdded(HttpSessionBindingEvent hsbe) {
log.debug("VALUE attributeAdded to THE SESSION:" + hsbe.getName());
}
public void attributeRemoved(HttpSessionBindingEvent hsbe) {
log.debug("VALUE attributeRemoved from THE SESSION:" + hsbe.getName());
}
public void attributeReplaced(HttpSessionBindingEvent hsbe) {
log.debug("VALUE attributeReplaced in THE SESSION:" + hsbe.getName());
}
}
和
public class SessionListener implements HttpSessionListener {
static Log log = LogFactory.getLog(SessionListener.class.getName());
private static int activeSessions = 0;
public void sessionCreated(HttpSessionEvent evt)
{
activeSessions++;
log.debug("No. of active sessions on:"+
new java.util.Date()+" : "+activeSessions);
}
public void sessionDestroyed (HttpSessionEvent evt)
{
activeSessions--;
}
}
为什么没有开始?或者我在哪里可以找到更多信息?
更新
似乎只有 SessionAttributeListener 从启动时出现问题。 SessionListener 没有启动,因为
更新
使用的 JAR 文件有问题。不包括 SessionAttributeListener 的类。当它被包含时,应用程序启动。
更新
AttributeListener 似乎没有运行。使用时,代码失败。有没有简单的方法来检查监听器是否正在运行?
【问题讨论】:
-
如果你把完整的错误日志放在里面会很有用。
-
另外,您的 web.xml 中哪里有监听器声明?
-
位于 之上 -
我们很欣赏这些代码示例,但这里不需要包含“import”语句;他们只是增加了混乱。
-
这现在是谷歌上“SessionAttributeListener tomcat”的第一名。起床几个小时后还不错。