Tomcat7啟動報Error listenerStart錯誤


問題

Tomcat7在啟動時報錯,詳細信息如下:

十一月 23, 2013 7:21:58 下午 org.apache.catalina.core.StandardContext startInter
nal
嚴重: Error filterStart
十一月 23, 2013 7:21:58 下午 org.apache.catalina.core.StandardContext startInter
nal
嚴重: Context [/st] startup failed due to previous errors

分析

Tomcat后台信息太少以至於不能得出問題空間出在哪兒(Tomcat的日志目錄也無相關信息)。網上查詢得知,通過配置Tomcat的Log,讓它記錄更多的日志信息,方能進一步分析原因。

在不能啟動的Web應用目錄(我這里是st)下WEB-INF/classes目錄中,新建logging.properties文件,內容參考如下:

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = error-debug.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


再啟動Tomcat后,后台顯示出了錯誤原因,並且Tomcat的日志目錄中也出現了文件“error-debug.2013-11-23.log”,其中記錄了錯誤詳細信息。下面內容供參考(每個人出錯的原因不一樣,需要具體問題具體分析解決):

嚴重: Exception starting filter struts2
Unable to load configuration. - action - file:/D:/Work/helloworld/WebContent/WEB
-INF/classes/struts.xml:8:67
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:483)
        at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOp
erations.java:74)
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
.init(StrutsPrepareAndExecuteFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterConfig.initFilter(Applicati
onFilterConfig.java:277)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(Applicatio
nFilterConfig.java:258)
        at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(Applica
tionFilterConfig.java:382)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFi
lterConfig.java:103)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.
java:4650)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContex
t.java:5306)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.
java:1559)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.
java:1549)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:615)
        at java.lang.Thread.run(Thread.java:744)
Caused by: Unable to load configuration. - action - file:/D:/Work/helloworld/Web
Content/WEB-INF/classes/struts.xml:8:67
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(
ConfigurationManager.java:70)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Di
spatcher.java:429)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:471)
        ... 15 more
Caused by: Action class [com.clzhang.ssh.action.LoginAction] not found - action
- file:/D:/Work/helloworld/WebContent/WEB-INF/classes/struts.xml:8:67
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.ver
ifyAction(XmlConfigurationProvider.java:480)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.add
Action(XmlConfigurationProvider.java:424)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.add
Package(XmlConfigurationProvider.java:541)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loa
dPackages(XmlConfigurationProvider.java:290)
        at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages
(StrutsXmlConfigurationProvider.java:112)
        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContai
ner(DefaultConfiguration.java:239)
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(
ConfigurationManager.java:67)
        ... 17 more

十一月 23, 2013 7:27:44 下午 org.apache.catalina.core.StandardContext startInter
nal
嚴重: Error filterStart
十一月 23, 2013 7:27:44 下午 org.apache.catalina.core.StandardContext startInter
nal
嚴重: Context [/st] startup failed due to previous errors
十一月 23, 2013 7:27:44 下午 org.apache.catalina.startup.HostConfig deployDirect
ory

解決

是程序的問題,配置的相關Action類的包名更改了,但沒有及時更改struts.xml文件導致上述結果。

有關Tomcat的日志相關配置參考:http://tomcat.apache.org/tomcat-7.0-doc/logging.html

 

本文參考:

http://grails.1312388.n4.nabble.com/Deployment-problems-td4628710.html

可能有同學打不開上述頁面,因為它被屏蔽了。摘錄部分內容如下,供參考:

Just for future reference; even though the app worked fine in development mode, there were some bugs in the BootStrap when deploying to a real server. I realized errors in the BootStrap were creating the cryptic listererStart error.

In order to get better debug logging, place a file called "logging.properties" in the webapps WEB-INF/classes folder.  Then, your server logs will show descriptive errors for debugging:

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler


############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = servlet-examples.


java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 

This will create a servlet-examples.log file in your appserver's log folder. This data was found at http://tomcat.apache.org/tomcat-7.0-doc/logging.html under the "Using java.util.logging (default)" header.

Hopefully this will help save someone some time and frustration when deploying their app, especially if, like me, they are unfamiliar with tomcat and the logging facilities. 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM