Tomcat7啓動報Error listenerStart錯誤

問題

Tomcat7在啓動時報錯,詳細信息以下:html

十一月 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 errorsjava

分析

Tomcat後臺信息太少以致於不能得出問題空間出在哪兒(Tomcat的日誌目錄也無相關信息)。網上查詢得知,經過配置Tomcat的Log,讓它記錄更多的日誌信息,方能進一步分析緣由。web

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

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」,其中記錄了錯誤詳細信息。下面內容供參考(每一個人出錯的緣由不同,須要具體問題具體分析解決):tomcat

嚴重: 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文件致使上述結果。app

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

 

本文參考:

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

可能有同窗打不開上述頁面,由於它被屏蔽了。摘錄部份內容以下,供參考:ide

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.this

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. 

相關文章
相關標籤/搜索