一、问题描述
  项目中通过配置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>

  

最新文章

  1. 编译opengl编程指南第八版示例代码通过
  2. 转载 Android快捷键 转载
  3. 【Aaronyang原创】用linq取出一个集合中重复的数据
  4. poj3660 Cow Contest(Floyd-Warshall方法求有向图的传递闭包)
  5. PHP框架_Smarty
  6. [转]Cocos Studio和Cocos2d-x版本对应关系
  7. .net core 利用中间件处理常见的网站功能 包括 session、routers、重定向、重写和文件下载
  8. asp.net mvc前台显示带htm标签的解决办法(Razor —@Html.Raw())
  9. Asp.Net WebAPI配置接口返回数据类型为Json格式
  10. 安装配置python环境,并跑一个推荐系统的例子
  11. python中收集函数的解包问题
  12. Hbase之Java API远程访问Kerberos认证
  13. 去7JAVA
  14. SSM数据库数据导出excel
  15. python的 del 函数是删对象还是删引用
  16. bzoj 1176
  17. [Usaco2015 Feb]Censoring --- AC自动机 + 栈
  18. celery-rabbitmq 安装部署
  19. 数据库架构设计的三种模式:share nothing , share everythong , share disk
  20. 使用iptables nat进行端口转发

热门文章

  1. vue项目开发前的es6的知识储备
  2. java synchronized(object/this)的 区别
  3. R in action读书笔记(17)第十二章 重抽样与自助法
  4. 调度工具taskctl跨调度服务依赖实现
  5. 洛谷 P2341 [HAOI2006]受欢迎的牛
  6. spring mvc 配置运行报错误
  7. AIX 10201 ASM RAC安装+升级到10204
  8. zuul 网关
  9. at, batch, atq, atrm - 排队、检查或删除以后要执行的作业
  10. CE工具里自带的学习工具--第四关