1. 程式人生 > >tomcat啟動報錯:Could not publish server configuration for Tomcat v7.0 Server at localhost。

tomcat啟動報錯:Could not publish server configuration for Tomcat v7.0 Server at localhost。

我用的是tomcat7.0.82.

tomcat報錯,無法啟動。

**報錯資訊:**Could not publish server configuration for Tomcat v7.0 server at localhost. 和 Server Tomcat v7.0 Server at localhost failed to start。

其他tomcat配置和專案部署等,都沒有錯,但是就是不能啟動。被折磨了很久,試了網上的各種方法都沒用。好不容易解決了,所以感覺必須要記錄下。

tomcat啟動時報錯,如下圖:

這裡寫圖片描述

原因:不能釋出本地Tomcat v7.0 的服務配置,重複的Contexts含有了某個專案的路徑。

解決方法:
找到建立tomcat的時在工作空間Servers的專案,找到此專案下的server.xml檔案,
這裡寫圖片描述
開啟並查詢Context節點,可以看到,此處確實有重複的配置,刪除多餘,僅保留一個即可。
這裡寫圖片描述
至此,儲存。

按照以上方法操作後,還是報錯:

這裡寫圖片描述

報錯資訊如下:

一月 05, 2018 9:21:47 上午 org.apache.catalina.core.StandardContext resourcesStart

嚴重: Error starting static Resources java.lang.IllegalArgumentException: Document base D:\SoftwareInstall\SoftwareDevelop\Tomcat\apache-tomcat-7.0
.82\webapps\pratice does not exist or is not a readable directory ------------------------------------------------------------------------ at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:136) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java
:5239) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5430) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1700) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1690) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 一月 05, 2018 9:21:47 上午 org.apache.catalina.core.ContainerBase startInternal 嚴重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/pratice]] ------------------------------------------------------------------------ at java.util.concurrent.FutureTask.report(Unknown Source) at java.util.concurrent.FutureTask.get(Unknown Source) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1239) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1700) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1690) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/pratice]] ------------------------------------------------------------------------ at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162) ... 6 more Caused by: org.apache.catalina.LifecycleException: Error in resourceStart() ------------------------------------------------------------------------ at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5431) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) ... 6 more 一月 05, 2018 9:21:52 上午 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom 警告: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [2,272] milliseconds. 一月 05, 2018 9:21:52 上午 org.apache.catalina.core.ContainerBase startInternal 嚴重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] ------------------------------------------------------------------------ at java.util.concurrent.FutureTask.report(Unknown Source) at java.util.concurrent.FutureTask.get(Unknown Source) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1239) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:444) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:758) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.startup.Catalina.start(Catalina.java:694) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] ------------------------------------------------------------------------ at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1700) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1690) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.catalina.LifecycleException: A child container failed during start ------------------------------------------------------------------------ at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1247) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) ... 6 more 一月 05, 2018 9:21:52 上午 org.apache.catalina.startup.Catalina start 嚴重: The required Server component failed to start so Tomcat is unable to start. org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]] ------------------------------------------------------------------------ at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162) at org.apache.catalina.startup.Catalina.start(Catalina.java:694) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]] ------------------------------------------------------------------------ at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:758) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) ... 7 more Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]] ------------------------------------------------------------------------ at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:444) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) ... 9 more Caused by: org.apache.catalina.LifecycleException: A child container failed during start ------------------------------------------------------------------------ at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1247) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) ... 11 more 一月 05, 2018 9:21:52 上午 org.apache.coyote.AbstractProtocol pause 資訊: Pausing ProtocolHandler ["http-bio-8080"] 一月 05, 2018 9:21:52 上午 org.apache.coyote.AbstractProtocol pause 資訊: Pausing ProtocolHandler ["ajp-bio-8009"] 一月 05, 2018 9:21:52 上午 org.apache.catalina.core.StandardService stopInternal 資訊: Stopping service Catalina 一月 05, 2018 9:21:52 上午 org.apache.coyote.AbstractProtocol destroy 資訊: Destroying ProtocolHandler ["http-bio-8080"] 一月 05, 2018 9:21:52 上午 org.apache.coyote.AbstractProtocol destroy 資訊: Destroying ProtocolHandler ["ajp-bio-8009"] 一月 05, 2018 9:21:53 上午 org.apache.catalina.deploy.NamingResources cleanUp 警告: Failed to retrieve JNDI naming context for container [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/pratice]] so no cleanup was performed for that container javax.naming.NamingException: No naming context bound to this class loader ------------------------------------------------------------------------ at org.apache.naming.ContextBindings.getClassLoader(ContextBindings.java:350) at org.apache.catalina.deploy.NamingResources.cleanUp(NamingResources.java:985) at org.apache.catalina.deploy.NamingResources.stopInternal(NamingResources.java:968) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:221) at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5847) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:221) at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:259) at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1146) at org.apache.catalina.core.ContainerBase.destroyInternal(ContainerBase.java:1357) at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292) at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1146) at org.apache.catalina.core.ContainerBase.destroyInternal(ContainerBase.java:1357) at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292) at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:594) at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292) at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:848) at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292) at org.apache.catalina.startup.Catalina.start(Catalina.java:698) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)

解決方法:找到tomcat的安裝目錄,找到conf資料夾下的server.xml檔案,開啟查詢到Context標籤。
這裡寫圖片描述
發現有多個Context,把多餘的刪除,僅保留tomcat部署下的專案即可。儲存,執行專案。
這裡寫圖片描述

至此,tomcat就能正常啟動了,專案也能執行。