tomcat啟動的時候報錯Failed to start component
在idea中運行tomcat時,遇到異常,異常信息如下:
16-Jan-2018 16:33:37.325 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying configuration descriptor C:\Users\Administrator\.IntelliJIdea2017.1\system\tomcat\Unnamed_xxx_6\conf\Catalina\localhost\AAA.xml
16-Jan-2018 16:33:37.331 警告
16-Jan-2018 16:33:37.336 嚴重 [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/AAA]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:621)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1835)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@1f063757]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4969)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5102)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
... 10 more
Caused by: java.lang.IllegalArgumentException: The main resource set specified [G:\AAA] is not valid
at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:746)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:704)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
... 13 more
16-Jan-2018 16:33:37.338 嚴重 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Error deploying configuration descriptor C:\Users\Administrator\.IntelliJIdea2017.1\system\tomcat\Unnamed_xxx_6\conf\Catalina\localhost\AAA.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/AAA]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:757)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:621)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1835)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
網上各種答案:1)tomcat與jdk版本不匹配;2)maven版本沖突;3)web.zml中配置錯誤;4)tomcat有緩存.........我都嘗試了都沒有解決我的問題。
由於我在tomcat中配置了虛擬路徑(什麽是虛擬路勁,怎麽設置請看http://blog.csdn.net/zjml2412/article/details/49962939),就是在tomcat的安裝目錄conf\Catalina\localhost下新建了一個配置文件AAA.xml文件,文件具體內容為:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="G:/AAA" reloadable="true" debug="0" path="/AAA"/>
其中“G:/AAA”代表我的電腦磁盤的G盤有個AAA文件,tomcat在啟動的時候會加載“G:/AAA”文件夾(文件),以便可以在網絡上使用"/AAA"訪問,所以說如果G盤沒有AAA文件夾(文件),tomcat啟動時會出現上面的異常。
所以說出現上面的異常,1)如果你配置過虛擬路徑,並且項目中要用到虛擬路徑,那麽請先在對應的”G”盤創建”AAA”文件;2)如果沒有配置過虛擬路勁,出現上面的異常,你可以將conf\Catalina\localhost的文件刪除;實在不行,網上下載一個新的tomcat部署項目應該就好了。
tomcat啟動的時候報錯Failed to start component