zoukankan      html  css  js  c++  java
  • spring集成quartz

    spring集成quartz

    注意:出现异常“Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class”

    Spring3.0不支持Quartz2.0,由于org.quartz.CronTrigger在2.0从class变成了一个interface造成IncompatibleClassChangeError错误:

    有两种办法:
    第一种减少quartz的版本号为,最好是quartz1.8
    另外一种是升级spring版本号为Spring3.2以上
    注:Spring3.2.4配置文件里使用CronTriggerFactoryBean来集成quartz2.x,
       使用CronTriggerBean来集成quartz1.8.x及曾经版本号.
     
    下面是一个小样例demo
    <!-- 启动触发器的配置開始 -->  
        <bean name="startQuertz" lazy-init="false" autowire="no"  
            class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
            <property name="triggers">  
                <list>  
                    <ref bean="myJobTrigger" />  
                </list>  
            </property>  
        </bean>  
        <!-- 启动触发器的配置结束 -->  
      
        <!-- 调度的配置開始 -->  
        <!--  
            quartz-1.8曾经的配置   
        <bean id="myJobTrigger"  
            class="org.springframework.scheduling.quartz.CronTriggerBean">  
            <property name="jobDetail">  
                <ref bean="myJobDetail" />  
            </property>  
            <property name="cronExpression">  
                <value>0/1 * * * * ?</value>  
            </property>  
        </bean>  
        -->  
        <!-- quartz-2.x的配置 -->  
        <bean id="myJobTrigger"  
            class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
            <property name="jobDetail">  
                <ref bean="myJobDetail" />  
            </property>  
            <property name="cronExpression">  
                <value>0/1 * * * * ?</value>  
            </property>  
        </bean>  
        <!-- 调度的配置结束 -->  
      
        <!-- job的配置開始 -->  
        <bean id="myJobDetail"  
            class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
            <property name="targetObject">  
                <ref bean="myJob" />  
            </property>  
            <property name="targetMethod">  
                <value>work</value>  
            </property>  
        </bean>  
        <!-- job的配置结束 -->  
      
        <!-- 工作的bean -->  
        <bean id="myJob" class="com.tgb.lk.demo.quartz.MyJob" />  
        


    package com.demo.test;


    import java.util.Date;


    /*
     * 使用spring+Quartz运行任务调度的详细类
     * */
    public class MyJob {


        /*
         * Description:详细工作的方法,此方法仅仅是向控制台输出当前时间,
         * 输入的日志在:%tomcatRoot%logs omcat7-stdout.yyyy-MM-dd.log中,
         * 当中,yyyy-MM-dd为部署的日期,经试验发现默认情况下并非每天都生成一个stdout的日志文件
         * @return 返回void
         * */
        public void work()
        {
             System.out.println("当前时间:"+new Date().toString());  
        }
    }//End of MyJob
  • 相关阅读:
    EasyUi datagrid列表增加复选框
    List集合流处理类型小结
    MockMvc模拟对controller进行单元测试
    项目配置不带项目名称访问
    mongodb常用的sql语句总结
    git push时报错:Updates were rejected because the tip of your current branch is behind
    xml转json和实体类的两种方式
    win 10 关闭或打开 测试模式
    Wise Force Deleter 强制删除文件工具 ---- 亲测好用
    Win 10 你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问....
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4018687.html
Copyright © 2011-2022 走看看