Tomcat启动报错:[Failed to start component]的解决方案

在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的配置出错,详见下图所示:

至此,问题解决,重点看异常源头信息详情

posted @ 2017-11-28 20:44  valuestack  阅读(6481)  评论(0编辑  收藏  举报