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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 华为交换机关闭网口_关闭端口的命令 怎么开启华为交换机关闭端口,命令谁知道啊。…[通俗易懂]

    华为交换机关闭网口_关闭端口的命令 怎么开启华为交换机关闭端口,命令谁知道啊。…[通俗易懂]1025端口和UDP13137、138、445端口。想和你喝酒是假的,余生都想醉在你心头却是真的。怎样用命令关闭和开启80端口?电脑点击开始按钮,点击控制面板。遇见的一部分叫做缘分,另一部分,小编们叫它劫数,有命中注定就有在劫难逃。进入控制面板页面,点击windows防火墙。进入windows防火墙界面,点击高级设置。小编们都在淡化这段感情,你选择新欢,小编选择时间。进入防火墙高级管理…

    2022年7月20日
    55
  • aop 实现原理_简述aop的原理

    aop 实现原理_简述aop的原理概述:最近在开发中遇到了一个刚好可以用AOP实现的例子,就顺便研究了AOP的实现原理,把学习到的东西进行一个总结。文章中用到的编程语言为kotlin,需要的可以在IDEA中直接转为java。这篇文章将会按照如下目录展开:AOP简介 代码中实现举例 AOP实现原理 部分源码解析1.AOP简介相信大家或多或少的了解过AOP,都知道它是面向切面编程,在网上搜索可以找到很多的解释。…

    2022年9月18日
    1
  • Centos7安装Promethus(普罗米修斯)监控系统完整版

    Centos7安装Promethus(普罗米修斯)监控系统完整版相关博文:1、Centos7安装Promethus(普罗米修斯)监控系统完整版2、Promethus(普罗米修斯)监控Mysql数据库3、Promethus(普罗米修斯)安装Grafana可视化图形工具4、Promethus的Grafana图形显示MySQL监控数据5、Promethus(普罗米修斯)的Grafana+onealert实现报警功能目录一、普罗米修斯…

    2022年6月5日
    35
  • python中print的用法_Python中print用法里面% ,”%s 和 % d” 代表的意思

    python中print的用法_Python中print用法里面% ,”%s 和 % d” 代表的意思Python 编程里面 s 和 d 代表的意思 s 表示格化式一个对象为字符 d 整数 Hello s zhang3 Hello zhang3 d 33 33 s d ab 3 ab 3 字符 标记转换说明符的开始 在 的左侧放置一个字符串 格式化字符串 而右侧则放置希望格式化的值 s 表示格式化规则 1 splu

    2025年8月7日
    0
  • shell循环执行脚本[通俗易懂]

    shell循环执行脚本[通俗易懂]shell循环执行脚本2017年08月24日15:28:18阅读数:215foriin{1..10} do   echo"Welcome$itimes"   eoo$i.sh done

    2022年7月24日
    8
  • Hbase面试题总结(大数据面试)

    Hbase面试题总结(大数据面试)概述

    2022年5月6日
    54

发表回复

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

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