1 tomcat 6600启动报错[root@localhost webapps]# sh /usr/local/apache-tomcat-6.0.37_6600/bin/startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-6.0.37_6600
Using CATALINA_HOME: /usr/local/apache-tomcat-6.0.37_6600
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.37_6600/temp
Using JRE_HOME: /usr/java/jdk1.6.0_45
Using CLASSPATH: /usr/local/apache-tomcat-6.0.37_6600/bin/bootstrap.jar
Using CATALINA_PID: /var/tomcat/6600.pid
Existing PID file found during start.
Removing/clearing stale PID file.
看到/var/tomcat/6600.pid已经存在了,所以载入失败。
停止tomcat,然后检查tomcat进程
2 删除已经存在的6600.pid文件[root@localhost webapps]# ps -eaf|grep 6600
root 10446 4972 0 15:09 pts/2 00:00:00 grep 6600
[root@localhost webapps]# more /var/tomcat/6600.pid
10180
[root@localhost webapps]#
[root@localhost webapps]# ll /var/tomcat/6600.pid
-rw-r--r-- 1 root root 6 05-03 15:07 /var/tomcat/6600.pid
[root@localhost webapps]# rm -rf /var/tomcat/6600.pid
[root@localhost webapps]#
3 再重新启动,还是报错,查看错误日志例如以下:tail -n 1000 /usr/local/apache-tomcat-6.0.37_6600/logs/catalina.out
2014-5-3 15:18:29 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/grouponAdminWeb] appears to have started a thread named [Thread-197] but has failed to stop it. This is very likely to create a memory leak.
2014-5-3 15:18:29 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/grouponAdminWeb] appears to have started a thread named [Thread-198] but has failed to stop it. This is very likely to create a memory leak.
......
2014-5-3 15:15:41 org.apache.catalina.startup.HostConfig deployWAR
信息: Deploying web application archive grouponAdminWeb.war
SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version
2014-5-3 15:15:44 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2014-5-3 15:15:44 org.apache.catalina.core.StandardContext start
严重: Context [/grouponAdminWeb] startup failed due to previous errors
从这里能够看出grouponAdminWeb这个web应用在tomcat容器上面deploy失败,为什么失败?
4 分析为什么会deploy应用失败?找这个应用的设计人员。经过同事提醒。去看同一文件夹的localhost.2014-05-03.log文件
tail -n 1000 /usr/local/apache-tomcat-6.0.37_6600/logs/localhost.2014-05-03.log
有例如以下错误提示:
2014-5-3 15:15:41 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
java.lang.IllegalStateException: Web app root system property already set to different value: 'GrouponWeb.root' = [/usr/local/apache-tomcat-6.0.37_6600/webapps/grouponWeb/] instead of [/usr/local/apache-tomcat-6.0.37_6600/webapps/grouponAdminWeb/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:148)
at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:117)
at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2014-5-3 15:15:41 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
5 看到错误信息,是配置文件有误,去改动WEB-INF下的web.xmlvim /usr/local/apache-tomcat-6.0.37_6600/webapps/grouponAdminWeb/WEB-INF/web.xml
将 GrouponWeb.root 的key值由GrouponWeb改动成GrouponAdminWeb,例如以下所看到的:
......
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>GrouponAdminWeb.root</param-value>
</context-param>
......
之后重新启动tomcat或者,又一次载入GrouponAdminWeb应用,就OK了。
6 查看最新tomcat启动日志例如以下[root@localhost WEB-INF]# tail -n 200 /usr/local/apache-tomcat-6.0.37_6600/logs/catalina.out
信息: Initializing Coyote HTTP/1.1 on http-6600
2014-5-3 15:18:53 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 472 ms
2014-5-3 15:18:53 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2014-5-3 15:18:53 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.37
2014-5-3 15:18:53 org.apache.catalina.startup.HostConfig deployDescriptor
信息: Deploying configuration descriptor manager.xml
2014-5-3 15:18:53 org.apache.catalina.startup.HostConfig deployWAR
信息: Deploying web application archive grouponWeb.war
SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version
============
2014-5-3 15:18:58 org.apache.catalina.startup.HostConfig deployWAR
信息: Deploying web application archive grouponAdminWeb.war
SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version
============
2014-5-3 15:19:02 org.apache.catalina.startup.HostConfig deployWAR
信息: Deploying web application archive grouponService.war
2014-5-3 15:19:04 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory ROOT
2014-5-3 15:19:04 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-6600
2014-5-3 15:19:04 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:6609
2014-5-3 15:19:04 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/13 config=null
2014-5-3 15:19:04 org.apache.catalina.startup.Catalina start
信息: Server startup in 10955 ms
总结:tomcat容器的web应用载入报错,除了要去看catalina.log日志之外,还要去看localhost.2014-05-03.log日志信息。