Tomcat启动日志 – 严重:错误filterStart如何获取堆栈跟踪?

当我启动Tomcat时,出现以下错误:

Jun 10, 2010 5:17:25 PM org.apache.catalina.core.StandardContext start SEVERE: Error filterStart Jun 10, 2010 5:17:25 PM org.apache.catalina.core.StandardContext start SEVERE: Context [/mywebapplication] startup failed due to previous errors 

Tomcat的日志不包括堆栈跟踪似乎很奇怪。 有人build议如何增加Tomcat中的日志logging来获取像这样的错误的堆栈跟踪?

检查Tomcat创build的localhost_yyyy_mm_dd.loglocalhost.yyyy-mm-dd.log日志,这些日志通常存储该types的信息。 我不希望完整的stacktrace被转储到标准输出。

在WEB-INF / classes中创build一个名为logging.properties的文件,内容如下:

 org.apache.catalina.core.ContainerBase.[Catalina].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler 

Tomcat会logging堆栈跟踪,但是从IDE启动tomcat时,并不总是清楚日志文件的位置。 当我从IntelliJ启动它时, CATALINA_BASE设置为${home}/.IntelliJIdea10/system/tomcat/Unnamed_r6-idea ,日志文件位于[CATALINA_BASE]/logs

要查看日志,可以find日志文件,或者编辑[CATALINA_HOME]/conf/logging.properties将tomcat日志输出指向控制台。 下面我添加了第二个处理程序到默认的tomcatconfiguration:

  org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 

现在完整的堆栈跟踪出现在IntelliJ输出中:

  Dec 27, 2011 12:02:45 PM org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter filterChainProxy org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'filterChainProxy' is defined at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529) . . . 

你需要复制文件

 cp /path/to/solr/example/lib/ext/* /path/to/tomcat/lib cp /path/to/solr/example/resources/* /path/to/tomcat/lib // or inside extracted solr 

然后重新启动 tomcat

也许你的应用程序是用不同于Tomcat的JRE编译的。

在你的服务器上检查java -version ,然后用相同的版本编译你的代码。 我有错误,因为我的Eclipse标准JRE是1.6和Tomcat使用1.5 – 这是行不通的。

在CentOS 6和Solr 4.4.0

我不得不编写一些lib文件来解决这个错误

 cp ~/solr-4.4.0/example/lib/ext/* /usr/share/tomcat6/lib/ 

通常在localhost有一个关于问题的信息[date] .log。 但是有时这个日志中没有任何东西。 如果项目的configuration混乱(几个开发人员在这个项目上工作了很长时间,每个项目都添加了一些东西),就会发生这种情况。 我没有在日志中的任何信息面临这个问题。 相当快速和健壮的方法:

  1. 尝试从web.xml中删除所有可能导致任何问题的东西。 你甚至可以删除标签除外。 如果应用程序仍然不能部署 – 继续。

  2. 从WEB-INF / classes中删除每个* .xml描述符。 如果应用程序无法部署 – 继续。

  3. 删除所有可以在你的战争中find的日志configuration(logging.properties,log4j.properties)。 尝试部署。 在这一步我有更多的信息错误,但部署仍然失败。

在search这个错误之后,我发现这个项目包含旧版本的xerces,它与Tomcat的版本(这是更新的)发生冲突,并没有部署应用程序。 在networking应用程序升级后,一切都变好了。

为Tomcat设置log4j日志logging非常简单。 以下是引用http://tomcat.apache.org/tomcat-5.5-doc/logging.html

  1. 使用以下内容创build一个名为log4j.properties的文件,并将其保存到common / classes中。

      log4j.rootLogger=DEBUG, R log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=${catalina.home}/logs/tomcat.log log4j.appender.R.MaxFileSize=10MB log4j.appender.R.MaxBackupIndex=10 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 
  2. 下载Log4J(v1.2或更高版本)并将log4j jar放入$ CATALINA_HOME / common / lib中。

  3. 下载Commons Logging并将log4j jar放在$ CATALINA_HOME / common / lib中的commons-logging-xyzjar(不是commons-logging-api-xyzjar)。
  4. 启动Tomcat

你可能也想看看http://wiki.apache.org/tomcat/FAQ/Logging

如果有人得到错误像SEVERE:错误filterStart 2013年4月29日,4:49:20 PM org.apache.catalina.core.StandardContext startInternal SEVERE:上下文[/ TraceMW]启动失败,由于以前的错误

那么请检查你的tomcat / lib目录是否包含cors-filter-1.5.jar 。 如果你点你有上面的错误,你的应用程序将无法使用。

所以,我只是设法从其他tomcat文件夹复制jar文件,我没有得到上面提到的错误。

我也得到了同样的错误,并在解决这个问题上挣扎了很多。 花了一些时间在search谷歌,find了下面的解决scheme,我的问题得到解决。

该问题是由于在部署path中缺lessStruts2库。 大多数人可能会把库编译,往往忘记附加所需的库运行时。 所以我在Web部署程序集中添加了相同的库,问题是closures的。

我得到了同样的问题,一旦它被部署在tomcat中,无法启动应用程序。 但是,一旦我将JAR文件的Struts集合复制到CATALINA_HOME \ lib(Tomcat目录)目录中,它就被parsing了。 您不需要在WEB_INF \ lib中包含这些jar文件,但是您需要将它们放在Build Path中。

公地file upload-1.2.1.jar

公地IO-1.3.2.jar

freemarker的-2.3.16.jar

Javassist进行-3.11.0.GA.jar

Struts2的会展-插件-2.2.1.jar

Struts2的核心 – 2.2.1.jar

XWork的核心 – 2.2.1.jar

只是想花一个几乎相同的问题花费最后一个小时。 我的解决scheme是,我们的应用程序.jar被破坏,所以从我们的开发服务器提供的jar提供了一个修复。

我有一个类似的问题。 雷纳托的提示为我工作。 我使用了旧版本的java类文件(在WEB-INF / classes文件夹下),问题消失了。 所以,应该是编译器版本不匹配。

这对我来说是诀窍:只要删除所有的库,然后编译和运行。 它会提示他们在您的项目中的错误确认。 应用库后重新运行项目。

通常,服务器JDK版本将低于部署的应用程序(使用更高的jdk版本构build)

运行以下命令显示terminal上的catalina日志

 sh start-camunda.sh; tail -f server/apache-tomcat-8.0.24/logs/catalina.out