您的位置:首页 > 其它

使用声明式启动job任务时报JobInitializationPlugin或XMLSchedulingDataProcessorPlugin实例化失败 解决方案

2015-10-17 15:09 597 查看
先贴上错误:
org.quartz.SchedulerException: SchedulerPlugin class 'org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin' could not be instantiated. [See nested exception: java.lang.ClassNotFoundException: Unable to load class org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin by any known loaders.]
at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:1039)
at org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1525)
at org.quartz.impl.StdSchedulerFactory.getDefaultScheduler(StdSchedulerFactory.java:1541)
at com.swh.jobweb.main.MyJob6Main.main(MyJob6Main.java:25)
在搞Quartz-Job项目时报如上的错误,如果你的quartz jar包已加,而且jar包也找到了XMLSchedulingDataProcessorPlugin类但执行时扔报上面的错误,则考虑quartz依赖的jar是否已加,可以把XMLSchedulingDataProcessorPlugin类拷贝项目中即可看到XMLSchedulingDataProcessorPlugin类还需要导入哪些jar文件,如下图则可以看出需要JTA和quartz的jobs包(我用的是quartz-2.2.2,其它版本情况类似),所以quartz需要导入的jar包有(2.2.x版):quartz-2.2.x.jar,quartz-jobs-2.2.x.jar和jta-1.1.jar



另外要注意:
在1.8版之前jobInitializer的配置为:
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
1.8版之后jobInitializer采用:
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin

否则的话,比如我使用的是2.2.2版却使用org.quartz.plugins.xml.JobInitializationPlugin配置,则会报如下的错误,如果你使用1.8之前的版本还报如下错误则可以采用上面同理方法进行解决。
org.quartz.SchedulerException: SchedulerPlugin class 'org.quartz.plugins.xml.JobInitializationPlugin' could not be instantiated. [See nested exception: java.lang.ClassNotFoundException: org.quartz.plugins.xml.JobInitializationPlugin]
at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:1039)
at org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1525)
at org.quartz.impl.StdSchedulerFactory.getDefaultScheduler(StdSchedulerFactory.java:1541)


祝luck
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息