博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
The web application [] appears to have started ...
阅读量:6084 次
发布时间:2019-06-20

本文共 1377 字,大约阅读时间需要 4 分钟。

hot3.png

    有看到过这个标题的人吗?我的Tomcat出什么问题了?

    有一个servlet,它在init方法里面实例化了一个线程类。这个类里面启动了若干个daemon线程。

    有一个listener,它在contextDestroyed方法里面关闭这个线程类。

    在catalina.out里面出现了这样的日志。

    在下面的这个link里面,apache官方给了一些说明:

   

    其中就包含了这种问题。具体的原因说的很清楚:

    

Here, when the app is stopped, the webapp classloader is still referenced by the spawned thread both through its context classloader and its current call stack (the anonymous Thread subclass is loaded by the webapp classloader). When stopping an application, tomcat checks the context classloader of every Thread, and if it is the same as the app being stopped, it logs the following message :

    当前app的classloader的引用指向到里我的线程类。

    修改方法参照官方说明。

    

leakingThread.setContextClassLoader(null)

    还有另外一种修改方法。

    在我们的线程类里面加入stop方法: 

   

class Example implements Runnable {        private volatile boolean isStop;        private Thread runThread;        @Override        public void run() {            runThread = Thread.currentThread();            isStop = false;            while(!isStop){                try {                    process();                } catch (XMPPException e) {                    log.error("Example logic exception.", e);                }            }        }        public void stopRun() {        	isStop = true;        	if(runThread != null) {        		runThread.interrupt();        	}        }

    然后在contextDestroyed方法里面调用stopRun方法。

 

转载于:https://my.oschina.net/u/145002/blog/68981

你可能感兴趣的文章
Electron all the Angular 2 Things
查看>>
常用shell实例1
查看>>
通用权限管理设计 之 数据库结构设计
查看>>
MYSQL服务器my.cnf配置文档详解
查看>>
springboot-2-springboot的文件上传和下载
查看>>
TPYBoardv201:带以太网的MicroPython开发板
查看>>
Micropython实战之TPYBoardv102 DIY金属检测仪
查看>>
ssh免密连接互信认证
查看>>
ElasticSearch使用
查看>>
使用grep、awk统计查询日志
查看>>
Spring 5 core 中的 @NonNull 是个什么鬼?!
查看>>
vsftpd系列--2--匿名访问控制
查看>>
Excel工作表保护破解方法
查看>>
实现geo相关
查看>>
SSM项目搭建三(终)
查看>>
vmware esxi基础篇之模版与克隆
查看>>
拥抱 Gradle: 下一代自动化工具
查看>>
CyclicBarrier让多线程齐步走
查看>>
tomcat与web程序结构与Http协议与HttpUrlConnection
查看>>
PHPStorm下调试使用CURL抓取数据中文乱码的一种可能
查看>>