在MyEclipse中启动Tomcat,该Tomcat仅部署了一个报错项目,启动Tomcat Server的全部信息如下:
usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help | start | stop } 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Server version: Apache Tomcat/7.0.68 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Server built: Feb 8 2016 20:25:54 UTC 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Server number: 7.0.68.0 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: OS Name: Windows 7 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: OS Version: 6.1 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Architecture: amd64 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Java Home: D:\MyDev\Java\jdk1.7.0_79\jre 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: JVM Version: 1.7.0_79-b15 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: JVM Vendor: Oracle Corporation 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: CATALINA_BASE: D:\MyDev\Tomcat\apache-tomcat-7.0.68 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: CATALINA_HOME: D:\MyDev\Tomcat\apache-tomcat-7.0.68 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Dcatalina.home=D:\MyDev\Tomcat\apache-tomcat-7.0.68 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Dcatalina.base=D:\MyDev\Tomcat\apache-tomcat-7.0.68 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Djava.endorsed.dirs=D:\MyDev\Tomcat\apache-tomcat-7.0.68/common/endorsed 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Djava.io.tmpdir=D:\MyDev\Tomcat\apache-tomcat-7.0.68\temp 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Djava.library.path=D:\MyDev\Java\jdk1.7.0_79\bin;D:\MyDev\Tomcat\apache-tomcat-7.0.68\bin 十一月 28, 2017 8:33:25 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Command line argument: -Dsun.io.useCanonCaches=false 十一月 28, 2017 8:33:25 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent 信息: Loaded APR based Apache Tomcat Native library 1.1.33 using APR version 1.5.1. 十一月 28, 2017 8:33:25 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent 信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 十一月 28, 2017 8:33:26 下午 org.apache.catalina.core.AprLifecycleListener initializeSSL 信息: OpenSSL successfully initialized (OpenSSL 1.0.1m 19 Mar 2015) 十一月 28, 2017 8:33:26 下午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler ["http-apr-8080"] 十一月 28, 2017 8:33:27 下午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler ["ajp-apr-8009"] 十一月 28, 2017 8:33:27 下午 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 2486 ms 十一月 28, 2017 8:33:27 下午 org.apache.catalina.core.StandardService startInternal 信息: Starting service Catalina 十一月 28, 2017 8:33:27 下午 org.apache.catalina.core.StandardEngine startInternal 信息: Starting Servlet Engine: Apache Tomcat/7.0.68 十一月 28, 2017 8:33:27 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\docs 十一月 28, 2017 8:33:28 下午 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom 信息: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [402] milliseconds. 十一月 28, 2017 8:33:28 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deployment of web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\docs has finished in 1,223 ms 十一月 28, 2017 8:33:28 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\examples 十一月 28, 2017 8:33:29 下午 org.apache.catalina.core.ApplicationContext log 信息: ContextListener: contextInitialized() 十一月 28, 2017 8:33:29 下午 org.apache.catalina.core.ApplicationContext log 信息: SessionListener: contextInitialized() 十一月 28, 2017 8:33:29 下午 org.apache.catalina.core.ApplicationContext log 信息: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@14bc5c96') 十一月 28, 2017 8:33:29 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deployment of web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\examples has finished in 867 ms 十一月 28, 2017 8:33:29 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\hessian_server 十一月 28, 2017 8:33:30 下午 org.apache.catalina.core.ContainerBase addChildInternal 严重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/hessian_server]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1259) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1998) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 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:745) Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name hessian at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3375) at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3354) at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1438) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1357) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:889) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5472) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) ... 10 more 十一月 28, 2017 8:33:30 下午 org.apache.catalina.startup.HostConfig deployDirectory 严重: Error deploying web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\hessian_server java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/hessian_server]] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:903) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1259) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1998) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 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:745) 十一月 28, 2017 8:33:30 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deployment of web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\hessian_server has finished in 861 ms 十一月 28, 2017 8:33:30 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\host-manager 十一月 28, 2017 8:33:30 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deployment of web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\host-manager has finished in 131 ms 十一月 28, 2017 8:33:30 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\manager 十一月 28, 2017 8:33:30 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deployment of web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\manager has finished in 139 ms 十一月 28, 2017 8:33:30 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\ROOT 十一月 28, 2017 8:33:30 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deployment of web application directory D:\MyDev\Tomcat\apache-tomcat-7.0.68\webapps\ROOT has finished in 109 ms 十一月 28, 2017 8:33:30 下午 org.apache.coyote.AbstractProtocol start 信息: Starting ProtocolHandler ["http-apr-8080"] 十一月 28, 2017 8:33:30 下午 org.apache.coyote.AbstractProtocol start 信息: Starting ProtocolHandler ["ajp-apr-8009"] 十一月 28, 2017 8:33:30 下午 org.apache.catalina.startup.Catalina start 信息: Server startup in 3463 ms
其中,项目hessian_server发生报错异常:
严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/hessian_server]]
关键是第二条异常信息,如报错信息中加粗所示:
Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name hessian
说明找不到名称为hessian的servlet,因此是web.xml的配置出错,详见下图所示:
至此,问题解决,重点看异常源头信息详情