1、问题描述:
今天用myeclipse写了个小demo,然后用Tomcat7 部署了,接着点击启动服务器,服务器居然报错:
严重: Error starting static Resources
java.lang.IllegalArgumentException: Document base H:\software\apache-tomcat\apache-tomcat-7.0.52\webapps\lemon 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:\software\apache-tomcat\apache-tomcat-7.0.52\webapps\lemon 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"/> -->,服务器正常启动!
 

【Tomcat】热部署的遗留配置导致服务器无法启动的更多相关文章

  1. IDEA/JRebel实现内部/外部/远程Tomcat热部署Spring Boot

    1 概述 所谓热部署,对于Java应用程序来说,就是在运行时更新Java类文件.IDEA可以使用自带的Spring Boot热部署的方式进行本地/远程热部署,或者使用JRebel进行本地/远程热部署, ...

  2. JAVAEE——宜立方商城14:项目部署规划、Tomcat热部署、反向代理的配置

    1. 学习计划 1.系统部署 2. 项目部署 2.1. 项目架构讲解 2.2. 网络拓扑图 2.3. 系统部署 2.3.1. 部署分析 e3-manager e3-manager-web e3-por ...

  3. 持续集成环境--Tomcat热部署导致线程泄漏

    一.问题由来 我们组用jenkins部署了持续集成环境,(jenkins部署war包到远程服务器的tomcat). 每次提交了代码,jenkins上一键构建,就可以自动拉取最新代码,打war包,热部署 ...

  4. IDEA第二章----配置git、tomcat(热部署)、database,让你的项目跑起来

    第一节:下载git客户端,整合idea 由于博主公司用的git版本管理,所以本系列都是基于git版本工具的,当然SVN与git配置类似.git同样支持安装版和解压版,支持各种操作系统,我这里下载的是W ...

  5. Tomcat热部署及错误排查

    Maven的热部署 第一步:配置Tomcat的登陆的用户名与密码 C:\apache-tomcat-7.0.33\conf\ tomcat-users.xml  从第36行开始配置     <r ...

  6. Tomcat热部署,Web工程中线程没有终止

    近期项目中,用 jenkins 热部署 web工程时,发现工程中静态持有的线程(将ScheduledExecutorService定时任务存储在静态Map中),导致不定时出现数据库访问事务关闭异常,如 ...

  7. tomcat热部署.class

    本人是在维护公司系统时遇到的问题,由于公司的系统是部署到客户服务器上,而系统中存在的问题又比较多,需要经常维护.如果每次修改完class文件后都需要去重启服务器, 那会给用户的使用造成不便,所以需要使 ...

  8. Tomcat热部署的实现原理

    Tomcat热部署机制 对于Java应用程序来说,热部署就是在运行时更新Java类文件.在基于Java的应用服务器实现热部署的过程中,类装入器扮演着重要的角色.大多数基于Java的应用服务器,包括EJ ...

  9. tomcat热部署,更改java类不用重新加载context

    修改类后,tomcat热部署会重新加载整个项目的context,影响开发效率.网上查的大多数是将server的modules标签中Auto Reload项改为Disabled,但是没有效果. 使用以下 ...

随机推荐

  1. Inter IPP & Opencv 在centos 环境下使用GCC命令行编译c++运行

    Inter IPP & Opencv 的安装看这里:https://www.cnblogs.com/dzzy/p/11332907.html 考虑到服务器一般没有桌面环境,不能用IDE编译,直 ...

  2. JDBC之——原理和连接数据库

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  3. 【面试】Redis

    1.如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样? set指令有非常复杂的参数,这个应该是可以同时setnx和expire合成一条指令来用的! 2.使用过Re ...

  4. State Threads之co-routine的创建和stack的管理

    1. 综述 协程库 State Threads Library 是一个基于 setjmp/longjmp 实现的 C 语言版用户线程库或协程库(user level thread). 基本协程例子: ...

  5. sql 新建表

    CREATE TABLE `rims`.`rims_basic_dictionary_doctor_group` ( `id` INT(11) NOT NULL AUTO_INCREMENT prim ...

  6. win + T 快捷键

    和 alt + tab 不同,win + T会在 在任务栏间的程序间进行switch

  7. Angularjs E2E test Report/CoverageReport

    前端Angularjs是一个很热门的框架,这篇是学习基于Angularjs的nodejs平台的E2E测试报告和E2E JS覆盖率报告.用到的都是现有的工具,只是一些配置的地方需要注意. 环境前提: 1 ...

  8. SQL学习(七)试图

    试图是基于SQL语句的结果集的可视化表. 1.创建试图 create view 试图名 as select 语句 如: create view ticketresult as select * fro ...

  9. SAS数据挖掘实战篇【一】

    SAS数据挖掘实战篇[一] 1数据挖掘简介 1.1数据挖掘的产生 需求是一切技术之母,管理和计算机技术的发展,促使数据挖掘技术的诞生.随着世界信息技术的迅猛发展,信息量也呈几何指数增长,如何从巨量.复 ...

  10. 基于nodeJS的小说爬虫实战

    背景与需求分析 最近迷恋于王者荣耀.斗鱼直播与B站吃播视频,中毒太深,下班之后无心看书. 为了摆脱现状,能习惯看书,我开始看小说了,然而小说网站广告多而烦,屌丝心态不愿充钱,于是想到了爬虫. 功能分析 ...