TOMCAT加载两次war包(重复加载)
2024-10-19 19:41:37
一、问题描述
项目中通过配置Context节点docBase,使docBase指向项目的绝对路径,可以直接通过IP加端口访问,今日发现意外bug,项目中某个功能奇数次执行成功,偶数次执行失败。
二、问题排查
这种现象应该是两次使用的为不同的对象,通过debug确认问题。但是本来是单例模式实现的实例,调用的时候却不是同一个实例,经过排查发现是Tomcat加载war包两次导致的。
三、解决办法
修改Tomcat的/conf/server.xml文件
1、将Host标签中的appBase置为空,在webapps同级目录创建app目录,将war放入,Context的docBase指向这个绝对路径,注意别放在webapps下,如下配置:
<Host name="localhost" appBase=""
unpackWARs="true" autoDeploy="true">
<!-- 这里我的war包是web.war -->
<Context docBase="/home/opt/apache-tomcat-8.0.35-web/app/web" path="" reloadable="true"></Context> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" /> </Host>
2、在HOST标签中deployIgnore=".*web.*",其他不做修改。
<HOST deployIgnore=".*web.*">
<Context docBase="/home/opt/apache-tomcat-8.0.35-web/webapps/web" path="" reloadable="true"></Context>
最新文章
- 编译opengl编程指南第八版示例代码通过
- 转载 Android快捷键 转载
- 【Aaronyang原创】用linq取出一个集合中重复的数据
- poj3660 Cow Contest(Floyd-Warshall方法求有向图的传递闭包)
- PHP框架_Smarty
- [转]Cocos Studio和Cocos2d-x版本对应关系
- .net core 利用中间件处理常见的网站功能 包括 session、routers、重定向、重写和文件下载
- asp.net mvc前台显示带htm标签的解决办法(Razor —@Html.Raw())
- Asp.Net WebAPI配置接口返回数据类型为Json格式
- 安装配置python环境,并跑一个推荐系统的例子
- python中收集函数的解包问题
- Hbase之Java API远程访问Kerberos认证
- 去7JAVA
- SSM数据库数据导出excel
- python的 del 函数是删对象还是删引用
- bzoj 1176
- [Usaco2015 Feb]Censoring --- AC自动机 + 栈
- celery-rabbitmq 安装部署
- 数据库架构设计的三种模式:share nothing , share everythong , share disk
- 使用iptables nat进行端口转发