Tomcat常见问题解决 – The web application appears to have started a thread named [FileWatchdog]

Tomcat常见问题解决 – The web application appears to have started a thread named [FileWatchdog]Tomcat常见问题解决 – The web application appears to have started a thread named [FileWatchdog]

大家好,又见面了,我是你们的朋友全栈君。

转自:http://blog.csdn.net/ego_ecust/article/details/65442622?locationNum=4&fps=1

现象:

停止Tomcat时,catalina.log里输出提示信息:

SEVERE: The web application [/xxx] appears to have started a thread named [FileWatchdog] but has failed to stop it. This is very likely to create a memory leak.

原因:

导致这个错误的原因是在web.xml里配置了:

[html] 
view plain
 copy

  1. <context-param>  
  2.     <param-name>log4jRefreshInterval</param-name>  
  3.     <param-value>3000</param-value>  
  4. </context-param>  

所以,启动Tomcat的同时启动了一个检测log4j.properties变化的线程,但在1.2.x版本的log4j实现中,这个线程无法被interrupt,所以会出现这个错误。

事实上,这个错误在2002年的时候就出现了,只不过一直没有被修复,详情可参考:

ASF Bugzilla – Bug 4913 org.apache.log4j.helpers.FileWatchdog should allow external interrupt()

log4j官方原先计划在1.3版本中修复,但后来,就没有后来的1.3版本了,直接到了2.x版本。1.2.x版本和2.x版本之间不兼容,无法平滑升级。


解决办法:

1、将log4j升级到2.x版本;
2、去掉自动检测这个配置(事实上95%以上的场景都没有必要);
3、自己写个ServletContextListener强行中止该线程。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106181.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何利用腾讯云服务器搭建个人网站[通俗易懂]

    如何利用腾讯云服务器搭建个人网站[通俗易懂]你是否想要搭建一个网站,却苦苦找不到方法,你是否看到别人搭建的网站,自己羡慕不已,今天,就教大家来搭建一个简单的个人网站。在这里,我采用的是腾讯云服务器搭建的。首先,需要注册腾讯云账号,登录腾讯云,点击控制台进入控制台后,选择域名注册看到的结果如下图所示:开始注册域名:提交订单后,域名就注册成功了。接下来需要购买云主机(云服务器),流程如下用…

    2022年6月29日
  • Kata Containers及相关vmm介绍「建议收藏」

    Kata Containers及相关vmm介绍「建议收藏」KataContainers介绍KataContainers是轻量级虚拟机的一种新颖实现,可无缝集成到容器生态系统中。KataContainers与容器一样轻巧快速,并与容器管理层集成,同时还提供VM的安全优势。KataContainers是两个现有开源项目的合并:IntelClearContainers和HyperrunV。新项目结合了两种技术的优点,共同愿景是重组虚拟化以适应容器原生应用程序,以提供容器的速度和VM的安全性。…

    2022年9月17日
  • Python批量修改文件名,文件再多也只要一秒,省时又不闹心

    Python批量修改文件名,文件再多也只要一秒,省时又不闹心前言嗨喽!大家好,这里是魔王对于电脑中的文件夹啊,我们那是新建一个又一个啊,有时候,我们整理资料的时候就会发现,文件夹那是一个杂乱无章,一个一个的去修改太浪费时间,咋今天就来分享一个小技巧:批量修改文件名一、在原有的名字前中后批量加字随意一点,这是我刚刚新建的文件夹和我存放的路径。我们来看看代码,我都详细注释了。importos#导入模块filename=’C:\\Users\\Administrator\\Desktop\\123’#文件地址list_path=os.l

    2022年10月28日
  • 电脑蓝屏错误代码0x0000007b_戴尔开机蓝屏0x0000007b

    电脑蓝屏错误代码0x0000007b_戴尔开机蓝屏0x0000007b电脑开机后就出现蓝屏代码为0x0000007b到底什么意思呢?0x0000007b算是电脑蓝屏常见故障之一,导致这样情况的原因有几种,下面小白系统帮你分析下导致蓝屏0x0000007b的原因以及解决方案。情况一:重装xp系统出现的蓝屏很多朋友的电脑系统原来是win7系统,但是重装xp系统后就会出现蓝屏代码0x0000007b的画面。解决步骤:1、重启电脑按F2键进入bios界面,常见进bios热键…

    2022年9月10日
  • intellijidea激活码_通用破解码

    intellijidea激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
  • MFC 自定义CListCtrl

    MFC 自定义CListCtrl本文的代码也是根据网上现有的改编而来首先是.h#pragmaonce#include”HeaderCtrlCl.h”//CListCtrlClclassCListCtrlCl:publicCListCtrl{DECLARE_DYNAMIC(CListCtrlCl)public:CHeaderCtrlClm_Header;CListCtrlCl();

    2022年6月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号