【问题标题】:JDBCJobStore in Quartz APIQuartz API 中的 JDBCJobStore
【发布时间】:2014-08-06 12:24:22
【问题描述】:

我正在将 Quartz 用于应用程序,并且它在没有 quartz.properties 文件的情况下工作正常。 当我包含quartz.properties 以使用JDBCJobStore 时,会出现以下异常

Exception in thread "main" org.quartz.SchedulerConfigException: Unable to instantiate JobFactory class: org.quartz.impl.StdSchedulerFactory cannot be cast to org.quartz.spi.JobFactory [See nested exception: java.lang.ClassCastException: org.quartz.impl.StdSchedulerFactory cannot be cast to org.quartz.spi.JobFactory]
    at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:785)    at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:785)
    at org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1502)

调度类

public class CronTriggerExample {
        public static void main( String[] args ) throws Exception
        {
            JobKey jobKeyA = new JobKey("jobA", "group1");
            JobDetail jobA = JobBuilder.newJob(JobB.class)
            .withIdentity(jobKeyA).storeDurably(true).build();
             Trigger trigger1 = TriggerBuilder
            .newTrigger()
            .withIdentity("dummyTriggerName1", "group1")
            .withSchedule(
            CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
            .build();
            SchedulerFactory schdFact = new StdSchedulerFactory();
                Scheduler schd = schdFact.getScheduler();
                schd.start();
            schd.scheduleJob(jobA, trigger1);


        }
    }

石英属性

# Main Quartz configuration
org.quartz.scheduler.skipUpdateCheck = true
org.quartz.scheduler.instanceName = MyQuartzScheduler
org.quartz.scheduler.jobFactory.class = org.quartz.impl.StdSchedulerFactory
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.useProperties=false
org.quartz.jobStore.dataSource = myDS 
org.quartz.dataSource.myDS.driver=com.mysql.jdbc.Driver
org.quartz.dataSource.myDS.URL=jdbc:mysql://localhost:3306/quartz
org.quartz.dataSource.myDS.user=root
org.quartz.dataSource.myDS.password=root
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.dataSource.quartzDataSource.maxConnections = 5

【问题讨论】:

    标签: java quartz-scheduler


    【解决方案1】:

    我已将以下代码行添加到属性文件中

    org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate
    

    并删除

    org.quartz.jobStore.useProperties=false
    

    它现在工作正常。

    【讨论】:

      猜你喜欢
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      相关资源
      最近更新 更多