Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
1、问题场景描述:一个maven项目启动时候,偶尔会报tomcat的这个错误(如图:)

随机报错,有时频率很高,要一直重新启动很多次可能还是启动不了,有时不报错。。
2、解决过程:网上各种寻找解决办法,大部分说的是servlet-api的jar包版本和项目使用的tomcat版本不对应,然后去找了一下servlet-api的jar包版本和tomcat版本的对应关系,

发现servlet-api的jar包版本和tomcat版本是对应的,此工程使用的是tomcat7组件,pom文件中

本地仓库中的servlet-api的jar包

是符合对应要求的,说明不是这个问题,开始了解学习tomcat的standardEngine和standardHost这两个类的源码,

a、StandardHost类是Host接口的默认实现;其继承自ContainerBase类,说明他也是一个容器类,既然是容器类,那肯定也有管道对象PipeLine和阀门,其基础阀门(Basic Valve)的实现类是org.apache.catalina.core.StandardHostValve,ErrorReportValve和ErrorDispatcherValve类作为管道对象中的错误处理阀门;
b、当客户端的请求Request要在Host中查找到相应的Context处理请求时,就需要使用mapper对象处理,StandardHost中的mapper实现类是org.apache.catalina.core.StandardHostMapper;当ContainerBase.start启动时会调用addDefaultmapper添加默认的映射器,也就会调用到StandardHost.addDefaultmapper方法:
c、Engine容器也就是tomcat的servlet引擎,StandardEngine类是Engine接口的默认实现;当部署tomcat时需要支持多个虚拟机的话,就需要使用engine容器,事实上,一般情况下,部署的tomcat都会使用一个Engine容器;
d、StandardEngineValve类作为StandardEngine类的基础阀门(Basic Valve),其invoke方法负责查找出对应的Host出来并交由host处理;
......了解了个大概,再回头看下原来的报错,大概知道是启动时候类似于类加载的问题,涉及的很多多个项目工程共用的jar包和单独有的jar包问题等等,需要使用catalina.properties配置文件,经行一些共用和单独使用的一些jar包进行管理,部署一些公用类设置,类加载设置等等:

讲catalina.properties文件放在target文件的tomcat文件夹中的conf配置文件夹目录下,catalina.properties文件其实就是公猫即tomcat的内部脚本文件。
问题解决。
附加上这个catalina.properties附件的地址 https://files.cnblogs.com/files/wmqiang/catalina.zip
Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]的更多相关文章
- maven运行出现错误:Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]](xjl456852原创)
maven在使用tomcat插件tomcat7-maven-plugin:2.2:run运行项目,出现下面错误: 严重: A child container failed during start j ...
- IntelliJ IDEA启动spring boot项目出现Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]
IntelliJ IDEA启动spring boot项目出现Failed to start component [StandardEngine[Tomcat].StandardHost[localho ...
- sprigboot 异常 Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].Tomc...
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start com ...
- Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContex
问题描述: 在idea中maven构建web项目,启动Tomcat插件时,出现Failed to start component [StandardEngine[Tomcat].StandardHos ...
- Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] 错误(Day_25)
错误: 在maven项目,web启动的时候报这个错误 Failed to start component [StandardEngine[Tomcat].StandardHost[localho ...
- Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
今天在测试项目代码时,在idea中配置tomcat7插件运行后一直报如下错误: 解决方案:看了网上大多数办法都是修改xml文件配置,感觉并不适用,最后看到比较靠谱解释如下: pom.xml中jar包发 ...
- Tomcat报错:Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] 解决办法: 1,检测你的web.xml.去掉所 ...
- Tomcat启动时报错,Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext
05-Dec-2016 11:23:44.321 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addCh ...
- tomcat启动时错误:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].错误
今天第一次遇到Failed to start component [StandardEngine[Catalina].StandardHost[localhost].错误,并且在错误提示的后半段出现了 ...
随机推荐
- 7-通用GPIO
7-通用GPIO 1.I/O 端口控制寄存器 每个 GPIO 有 4 个 32 位存储器映射的控制寄存器(GPIOx_MODER.GPIOx_OTYPER.GPIOx_OSPEEDR.GPIOx_PU ...
- SpringBoot-整合@transactional注解
springboot默认集成事务,只主要在方法上加上@Transactional即可
- 配置AlwaysON出错
在其中一个集群节点的SQL Server中验证各节点的投票数 ,在其中一个集群节点的SQL Server上执行使用下面SQL语句 SELECT * FROM sys.dm_hadr_cluster_m ...
- Python3学习之路~3.1 函数基本语法及特性、返回值、参数、局部与全局变量
1 函数基本语法及特性 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 减少重复代码 使程序变的可扩展 使程序变得易维护 语法定义: d ...
- nginx 启动报错403
nginx 安装完成以后启动的时候报403, 网上找的答案是在配置文件nginx.conf里面加上 user root owner;这个要加在配置文件的第一行才行,否则还是会报错,配置文件截图为: 参 ...
- vue.js 兄弟组件传值
另: 在vue里,组件之间的作用域是独立的,父组件跟子组件之间的通讯可以通过prop属性来传参,但是在兄弟组件之间通讯就比较麻烦了,虽然可以使用事件监听的方式,但还是不如vuex专业.比如A组件要告 ...
- centos7下源码编译方式安装httpd
前言 Apache至少需要apr.apr-util.pcre组件的支持. APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主 ...
- Jmeter测试报告
服务器: 2个CPU,每个CPU 1个核,4G内存 20G硬盘 客户端(Jmeter):2个CPU,每个2个核,4+8内存 500G硬盘 ---------------------------- ...
- openshift 调度命令
oc adm manage-node oc-node07 --schedulable=true #可调度 oc adm manage-node oc-node07 --schedulable=fal ...
- 适用于 Windows 7 SP1、Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2 的 .NET Framework 4.5.2 仅安全更新说明:2017 年 9 月 12 日
https://support.microsoft.com/zh-cn/help/4040960/description-of-the-security-only-update-for-the-net ...