开发者社区> 问答> 正文

关于在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的线程还没有完全关闭。

如何能保证重启的时候,能把线程全部关闭?

什么设置标志位,都不管用,有没有办法强制关闭某个线程。

这个问题,愁死了。

展开
收起
爱吃鱼的程序员 2020-06-20 17:28:11 477 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    kill掉,写个命令,用那个重启!回复<aclass='referer'target='_blank'>@一岁穿耐克:好吧,还是换druid吧kill掉整个Tomcat?项目跑在云环境里面,不能这么操作吧。   这是由于用户创建的线程是非守护线程造成的,将所有自己创建的线程在start()前先setDaemon(true),楼主碰到的问题可能是c3p0线程为非守护线程,换jfinal提供的DruidPlugin试试

    2020-06-20 17:28:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Tomcat 的云原生演进 立即下载
多IO线程优化版 立即下载
《Nginx 代理系统常用手册》 立即下载