我的项目中需要循环每分钟对一些数据进行验证,所以用TimerTask实现。
Timer _timer = new Timer(); _timer.schedule(new CDialStatusChangeTask(), 3000, 60000);
上面是一个Timer,目前整个项目有两个这杨的Timer调用不同的TimerTask.我是指主配置类里面启动的这个,但是经常启动后find()报空指针异常,或者报c3p0连接关闭,但是过会又能继续访问。
java.lang.NullPointerException at com.jfinal.plugin.activerecord.Model.find(Model.java:457) at com.jfinal.plugin.activerecord.Model.find(Model.java:474) at com.teledial.model.CDialListDetail.getResultCDialListDetail(CDialListDetail.java:45) at com.teledial.dbtask.ResultBackDBTask.run(ResultBackDBTask.java:33) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505)具体报错语句:
return dao.find(" select * from c_diallistdetail where result='1' and beget=1 and diallistid in (select t1.id from c_diallist t1,c_dialplan t2 where t1.planid=t2.id and t2.status=3 )");
检查Timer启动的是否在ActiveRecordPluginstart()之前,贴出一下time启动的相关代码是在哪里?<divclass='ref'>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。