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就能正常启动了,项目也能运行。

猜你喜欢

转载自blog.csdn.net/qq_33048333/article/details/78972112