Quartz的Job无法实例化原因及解决方案总结

org.quartz.core.ErrorLogger : An error occured instantiating job to be executed.....

这是我用quartz写任务调度的时候出现的异常,Job无法实例化,以前用过N次,从来没有出现过这个问题,project中的类怎么会无法实例化呢,百思不解,思考半天感觉应该是在quartz的规则下无法实例化,而不是类本身无法instance,所以看了一下,果然,因为有很多的运行类是Team的哥哥们写的,我要做的是一个集成的任务调度,把它们都集中起来运行管理,而以前的很多的默认的空构造方法被入参的构造方法覆盖了,而quartz的默认实例化是要用默认的无参构造方法的,所以无法实例化,这样下来,当然会出现这个错误了,因为我有显示的写明默认构造方法的习惯,所以以前自己做的时候没有出现问题,既然这样,引发了我的一些其它思考,接下来分别试了多种case下的实例化问题,根据结果总结一下,希望对大家有帮助:

1)Job类必须有默认的无参构造方法,当然不覆盖的话类本身就是无参的构造方法

2)Job的scope必须是Public类型的,因为quartz根据反射机制实例化类,如果不是public的,无法对其暴露

3)  Job类不能是内部类,原因同上,所以最好单独建类

 

说白了,用正常的方法创建使用的时候是不会出现这样的问题的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值