在我的 Tomcat 日志 (catalina) 中,我收到以下错误,阻止我的应用程序启动:
SEVERE: Error listenerStart 24-Mar-2009 13:23:10 org.apache.catalina.core.StandardContext start SEVERE: Context [/exampleA] startup failed due to previous errors
I do not know why I am getting this. In my web.xml I have the following
<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 似乎没有运行。当它被使用时,代码失败。有没有一种简单的方法来检查监听器是否正在运行?
最佳答案
您的更新阅读“AttributeListener 似乎没有运行。使用它时代码失败。是否有简单的方法来检查监听器是否正在运行?”您是否尝试过添加静态初始化程序?像
static {
log.debug("static initialiser called");
}
这样,第一次引用该类时,您应该获得日志记录。
关于Java 监听器未在 Tomcat 下启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/677443/