使用quartz框架调度任务,今早发现一个名为DDRBMMSResourceTask的任务抛以下异常
ERROR [org.quartz.scheduler.instanceId = AUTO_QuartzSchedulerThread] (QuartzScheduler.java:2156)
- An error occured instantiating job to be executed. job= 'DEFA ULT.DDRBMMSResourceTask'
org.quartz.SchedulerException: Problem instantiating class 'com.ydtf.ipcc.m ms.service.DDRBMMSResourceTask' [See nested exception:
java.lang.InstantiationEx ception: com.ydtf.ipcc.mms.service.DDRBMMSResourceTask]
at org.quartz.simpl.SimpleJobFactory.newJob(SimpleJobFactory.java:57)
at org.quartz.core.JobRunShell.initialize(JobRunShell.java:132)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java: 358) Caused by:
java.lang.InstantiationException: com.ydtf.ipcc.mms.service.DDRBMMSRe sourceTask
at java.lang.Class.newInstance0(Class.java:340) at java.lang.Class.newInstance(Class.java:308)
at org.quartz.simpl.SimpleJobFactory.newJob(SimpleJobFactory.java:55)
... 2 more
原来:org.quartz.scheduler.jobFactory,因为它简单的调用 Job 类的 newInstance() 方法来得到 Job 实例,所以Job 要有一个无参构造方法。
摘自:http://unmi.cc/quartz-job-scheduling-framework-appendix-1