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.