zoukankan      html  css  js  c++  java
  • 【Tomcat】热部署的遗留配置导致服务器无法启动

    1、问题描述:
    今天用myeclipse写了个小demo,然后用Tomcat7 部署了,接着点击启动服务器,服务器居然报错:
    严重: Error starting static Resources
    java.lang.IllegalArgumentException: Document base H:softwareapache-tomcatapache-tomcat-7.0.52webappslemon 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:5089)
           at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269)
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
           at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
           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)
    四月 22, 2017 6:57:41 下午 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[/lemon]]
           at java.util.concurrent.FutureTask.report(FutureTask.java:122)
           at java.util.concurrent.FutureTask.get(FutureTask.java:188)
           at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
           at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799)
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
           at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
           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: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/lemon]]
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
           ... 6 more
    Caused by: org.apache.catalina.LifecycleException: Error in resourceStart()
           at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5270)
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           ... 6 more
    四月 22, 2017 6:57:41 下午 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(FutureTask.java:122)
           at java.util.concurrent.FutureTask.get(FutureTask.java:188)
           at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
           at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:606)
           at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
           at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
           at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
           at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
           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: org.apache.catalina.LifecycleException: A child container failed during start
           at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
           at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799)
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           ... 6 more
    四月 22, 2017 6:57:41 下午 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:154)
           at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:606)
           at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
           at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
           at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           ... 7 more
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
           at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           ... 9 more
    Caused by: org.apache.catalina.LifecycleException: A child container failed during start
           at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
           at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
           at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           ... 11 more
    2、问题分析:
    Document base H:softwareapache-tomcatapache-tomcat-7.0.52webappslemon does not exist or is not a
    这句话告诉我们在tomcat的webapps下找不到lemon这个项目 看了看 确实没有. 
    此时,我能想到的就是work这个临时文件夹,一般出错都是这个临时文件夹搞的鬼,但是delete掉后,问题依旧。
    思来想去,想起了eclipse的workspace下的.metadata下的plugins内的插件org.eclipse.wst.server.core下有个配置文件servers.xml是指定部署项目的相关配置.
    于是,我就想myeclipse一般是部署在真实的tomcat上,应该会修改 tomcat的配置文件,因此我找到了tomcat的配置文件server.xml
    打开发现,
    3、问题解决:
    查了下context标签的意思,原来,
    <!-- tomcat配置的虚拟路径 docBase="应用的实际目录" 如果用myclipse编写 则是webRoot Tomcat热部署 -->
          <!-- <Context docBase="lemon" path="/lemon" reloadable="true" source="org.eclipse.jst.j2ee.server:lemon"/> -->
    最后,我分析可能是因为我们在用myeclipse开发时,由于某种误操作导致myeclipse没有及时去更新server.xml配置文件,导致遗留了一些无效配置。
    删掉最后的那句<!-- <Context docBase="lemon" path="/lemon" reloadable="true" source="org.eclipse.jst.j2ee.server:lemon"/> -->,服务器正常启动!
     
  • 相关阅读:
    Hbase安装配置
    HBASE概念补充
    Hbase概述
    qt creator源码全方面分析(2-8)
    qt creator源码全方面分析(2-7)
    qt creator源码全方面分析(2-6)
    qt creator源码全方面分析(2-5)
    qt creator源码全方面分析(2-3)
    qt creator源码全方面分析(2-2)
    qt creator源码全方面分析(2-4)
  • 原文地址:https://www.cnblogs.com/dantefung/p/6748836.html
Copyright © 2011-2022 走看看