使用Spring配置管理Quartz的时候会遇到下面的异常:
Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class
原因是Spring 3.0版本中内置的Quartz版本是<2.0的,在使用最新的Quartz包(>2.0)之后,接口不兼容。
解决办法有三种:
- 1、降低Quartz版本,降到1.X去。
- 2、升级Spring版本到3.1+, 根据Spring的建议,将原来的**TriggerBean替换成**TriggerFactoryBean,例如CronTriggerBean 就可以替换成 CronTriggerFactoryBean。替换之后问题解决。
- 3、放弃 在Spring 3.0 的xml配置文件重管理 Quartz2.2.1,直接在程序中调用。