tomcat啟動報錯:Could not publish server configuration for Tomcat v7.0 Server at localhost。
阿新 • • 發佈:2019-01-03
我用的是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就能正常啟動了,專案也能執行。