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日志信息。