题
在我的Tomcat日志(卡塔利娜)我得到以下错误防止我的应用程序从启动:
SEVERE: Error listenerStart 24-Mar-2009 13:23:10 org.apache.catalina.core.StandardContext start SEVERE: Context [/exampleA] startup failed due to previous errors
我不知道为什么我收到此。在我的web.xml我有以下
<listener>
<listener-class>
uk.co.a.listener.SessionListener
</listener-class>
</listener>
<listener>
<listener-class>
uk.co.a.listener.SessionAttributeListener
</listener-class>
</listener>
当我注释掉听众它启动的罚款。用于listners代码低于:
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");
}
这种方式,第一次在类中引用你应该得到的日志记录。
其他提示
自从我结束了在其他地方找到我的一个解决方案的路线,我想更新与信息这个问题将是有益的。
这一切都与这引起可怕的基本的异常做:不被记录的任何地方“严重错误listenerStart”消息,以及如何配置记录,以产生异常
在我的情况下,我去了一个更削减版本,添加
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/web-app].level = FINE
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/web-app].handlers = java.util.logging.ConsoleHandler
到Tomcat CONF / logging.properties和替换/ web应用与适当的Web应用程序上下文路径。
和神奇地隐藏例外出现,并告诉我,在Java 6的运行时间也不想知道有关Java 7中尴尬的编译代码,但容易固定。
这是适用到Tomcat 7.你的里程可能会有所不同。
当你遇到“启动失败,原因是先前的错误,”在你的Tomcat的日志,你要么进一步发现异常起来,是造成这一问题的日志中,或者您需要在Tomcat中完全配置日志记录,以使异常可能是写入日志。一旦你写你的日志的根源,分辨率通常是微不足道的。