使用了SpringMvc4.2+quartz进行java调度,一开始的时候使用quartz2.0的包运行一直报错,提示nested exception is java.lang.NoSuchMethodError: org.quartz.JobDataMap.put(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object异常,后来在网上找了一下原因,原来是quartz的版本太低了,就下载了quartz2.2的版本,结果运行OK。还有就是低版本的quartz和quartz2.2的配置不同点是下面的代码的红色部分:
低版本quartz:
<!--配置调度执行的触发的时间-->
<bean id="myPrintTrigger" class="org.springframework.scheduling.quartz. CronTriggerBean ">
<property name="jobDetail" ref="myPrintDetail" />
<property name="cronExpression">
<!-- 每天早上8点执行任务调度 -->
<value>0 0 8 * * ?</value>
</property>
</bean>
quartz2.2
<bean id="taskTrigger"
class="org.springframework.scheduling.quartz. CronTriggerFactoryBean ">
<property name="jobDetail" ref="taskDetail" />
<property name="cronExpression" value="*/5 * * * * ?" /> <!-- 每5秒触发一次 -->
</bean>
低版本quartz:
<!--配置调度执行的触发的时间-->
<bean id="myPrintTrigger" class="org.springframework.scheduling.quartz. CronTriggerBean ">
<property name="jobDetail" ref="myPrintDetail" />
<property name="cronExpression">
<!-- 每天早上8点执行任务调度 -->
<value>0 0 8 * * ?</value>
</property>
</bean>
quartz2.2
<bean id="taskTrigger"
class="org.springframework.scheduling.quartz. CronTriggerFactoryBean ">
<property name="jobDetail" ref="taskDetail" />
<property name="cronExpression" value="*/5 * * * * ?" /> <!-- 每5秒触发一次 -->
</bean>