目前项目使用的JFinal,项目使用了一个线程池来管理下载线程,然后重启Tomcat有时候会报如下错误。
Illegal access: this web application instance has been stopped already. Could not load com.mchange.v2.c3p0.impl.IdentityTokenResolvableBeanInfo. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
大概原因是因为在tomcat重启的时候,之前的Tomcat的线程还没有完全关闭。
如何能保证重启的时候,能把线程全部关闭?
什么设置标志位,都不管用,有没有办法强制关闭某个线程。
这个问题,愁死了。
kill掉,写个命令,用那个重启!回复<aclass='referer'target='_blank'>@一岁穿耐克:好吧,还是换druid吧kill掉整个Tomcat?项目跑在云环境里面,不能这么操作吧。 这是由于用户创建的线程是非守护线程造成的,将所有自己创建的线程在start()前先setDaemon(true),楼主碰到的问题可能是c3p0线程为非守护线程,换jfinal提供的DruidPlugin试试
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。