2010-06-10 24 views
92

當我啓動Tomcat我得到以下錯誤:Tomcat啓動日誌 - 嚴重:錯誤filterStart如何獲取堆棧跟蹤?

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的日誌不包括堆棧跟蹤。有人建議如何增加Tomcat中的日誌記錄以獲取此類錯誤的堆棧跟蹤嗎?

+1

我使用的吉斯 - Servlet和做在我的設置方法使用try/catch這個框架我能捕獲所有異常並在記錄自己後重新推出它們。我仍然不得不盲目調試讓Guice-Servlet的過濾器工作,但添加的任何東西似乎都可以工作。 – benstpierre 2010-06-21 16:54:19

+1

似乎堆棧跟蹤轉到標準輸出,但Intellij不讀取Tomcat的標準輸出。 http://tomcat.apache.org/tomcat-6.0-doc/logging.html我需要在tomcat中將stdout重定向到一個文件,以便Intellij可以查看它。 – benstpierre 2010-06-22 19:28:37

回答

130

檢查localhost_yyyy_mm_dd.loglocalhost.yyyy-mm-dd.log日誌,這些日誌Tomcat的創建,這些通常存儲類型信息的。我不希望完整的stacktrace被轉儲到標準輸出。

+0

我的Tomcat 5.5實例不寫入該文件。 – 2010-11-07 11:52:47

+3

到目前爲止,「error filterStart」一直困擾着我的噩夢......不再長!你搖滾! – 2012-10-01 17:16:19

+0

你很高興在開發過程中發現這些東西之一。非常感謝。 – 2013-01-17 13:04:19

1

設置爲Tomcat的log4j日誌記錄是非常簡單的。從http://tomcat.apache.org/tomcat-5.5-doc/logging.html引述如下:

  1. 創建一個名爲log4j.properties,內容如下,並保存成普通/班。

      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或更高版本),並放置在$ CATALINA_HOME/log4j的罐子common/lib目錄。

  3. 下載Commons Logging並將log4j jar放入$ CATALINA_HOME/common/lib中的commons-logging-x.y.z.jar(不是commons-logging-api-x.y.z.jar)。
  4. 啓動Tomcat

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

+0

這個原因是否會將異常部署到實際正確的日誌中? – benstpierre 2010-06-21 16:45:42

+0

是的。我已經使用這個確切的方法在部署過程中發現問題的原因。 – Tommi 2010-06-21 19:27:28

+1

抱歉,日誌級別爲DEBUG,日誌文件難以理解。它確實包含了一些似乎與這個問題沒有任何關係的例外 - 我懷疑這是我的情況下的一個Struts問題。 – 2010-11-07 12:23:40

79

創建WEB-INF/classes目錄名爲logging.properties有以下內容的文件:

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

這爲我節省了很多時間。謝謝。! – 2014-03-06 00:10:36

+2

這使我能夠在我的一個tomcat過濾器(ServletContextListener)中檢測到異常。謝謝! – simou 2014-04-30 13:38:51

+0

這是我的工作,謝謝! – Jason 2015-09-07 11:42:16

5

也許您的應用程序使用與Tomcat不同的JRE進行編譯。

檢查java -version您的服務器上,然後使用相同版本的編譯代碼。 我有錯誤,因爲我的Eclipse標準JRE是1.6和Tomcat使用1.5 - 這是行不通的。

18

Tomcat的確實記錄的堆棧跟蹤,但它並不總是很清楚其中的日誌文件,當Tomcat從IDE開始。當我從IntelliJ啓動它時,CATALINA_BASE設置爲${home}/.IntelliJIdea10/system/tomcat/Unnamed_r6-idea,並且日誌文件位於[CATALINA_BASE]/logs中。

要查看日誌,要麼找到日誌文件,或編輯[CATALINA_HOME]/conf/logging.properties直接tomcat的記錄器輸出到控制檯。下面我添加了第二個處理器的默認Tomcat配置:

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) 
. . . 
+0

thx非常,它解決了我的錯誤 – Frank 2016-02-29 11:06:05

0

只是想花的最後一小時在幾乎相同的問題後做出貢獻。我的解決方案是,我們的應用程序.jar被破壞了,所以從我們的開發服務器中放置jar提供了一個修復程序。

0

我有一個類似的問題。雷納託的小費爲我工作。我使用了舊版本的java類文件(位於WEB-INF/classes文件夾下),問題消失了。所以,它應該是編譯器版本不匹配。

1

如果有人越來越像 嚴重錯誤:錯誤filterStart 2013年4月29日下午四點49分二十秒org.apache.catalina.core.StandardContext startInternal 重度:上下文[/ TraceMW]啓動失敗由於先前的錯誤

那麼請檢查你的tomcat/lib目錄是否包含cors-filter-1.5.jar。 如果你點有你會得到以上錯誤,並且你的應用程序將不可用。

所以,我只是設法從其他Tomcat文件夾複製jar文件,我沒有得到上述錯誤後。

2

在CentOS 6的和Solr 4.4.0

我不得不COMP一些LIB文件收到此錯誤解決

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

這也解決了我的問題。 Ubuntu 14.04和solr 4.8.1和tomcat 7. – cjungel 2014-09-23 17:14:08

9

你需要複製的文件

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 

,然後restart tomcat

+3

耶,這救了我! 。另外,查看/path/to/solr/example/resources/log4j.properties並編輯日誌目錄 – r3x 2014-08-20 21:29:34

+0

這將是一個不錯的主意,這真的可以節省我。我花了很多時間來解決這個問題。 – Tung 2016-01-28 01:08:36

0

這樣做了技巧:只需刪除所有庫,然後編譯並運行。它會促使他們在你的項目中出現錯誤確認。應用庫後重新運行項目。

1

我也得到了同樣的錯誤,並且在解決這個問題上掙扎了很多。在搜索Google時花了一點時間,發現了以下解決方案,我的問題得到了解決。

該問題是由於在部署路徑中缺少Struts2庫。大多數人可能會把庫編譯,並且往往忘記附加運行庫所需的庫。所以我在Web部署程序集中添加了相同的庫,問題是關閉的。

0

一般服務器的JDK版本會比部署的應用程序(具有較高的JDK版本內置)

1

我得到了同樣的問題,無法一旦它被部署在Tomcat中啓動應用程序低。但是,一旦我將Struts的一組jar文件複製到CATALINA_HOME \ lib(Tomcat dir)目錄中,它就會被解析。您不需要在WEB_INF \ lib中包含這些jar,但是您需要將它們放入Build Path中。

公地文件上傳-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-core-2.2.1.jar

2

通常在localhost中有關於問題的信息[date] .log。 但有時在這個日誌中沒有任何東西。如果項目有混亂的配置(幾個開發人員在其上工作了很長時間並且每個人都從他自己添加了一些東西),就會發生這種情況。 我遇到了這個問題,沒有任何日誌信息。相當快速和可靠的方法:

  1. 嘗試從web.xml中刪除所有可能導致任何問題的東西。你甚至可以刪除標籤以外的所有東西如果應用程序仍然無法部署 - 繼續。

  2. 從WEB-INF/classes中刪除每個* .xml描述符。如果應用程序無法部署 - 繼續。

  3. 刪除所有您可以在war中找到的日誌配置(logging.properties,log4j.properties)。嘗試部署。在這一步,我得到了更多的信息錯誤,但部署仍然失敗。

google搜索這個錯誤後,我發現,項目包括舊版本的Xerces,這與Tomcat的版本(這是新的),並沒有要部署的應用程序發生衝突。在網絡應用程序中升級xerces後,一切都變好了。

-1

運行以下命令來顯示終端上卡塔利娜日誌---

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