开发者社区> 问答> 正文

Tomcat中多线程开发中Reload报错问题。

目前项目使用的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的线程还没有完全关闭。
如何能保证重启的时候,能把线程全部关闭?
什么设置标志位,都不管用,有没有办法强制关闭某个线程。

展开
收起
落地花开啦 2016-05-30 17:52:13 3071 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    这是由于用户创建的线程是非守护线程造成的,将所有自己创建的线程在 start() 前先 setDaemon(true),楼主碰到的问题可能是 c3p0 线程为非守护线程,换 jfinal 提供的 DruidPlugin 试试

    2019-07-17 19:20:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Tomcat 的云原生演进 立即下载
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载