0 votes

Exception lors de l'exécution du programme Quartz Scheduler

Je reçois l'exception suivante lors de l'exécution de mon programme Quartz Scheduler.

Voici la trace de l'exception

26 mars 2010 14:54:24 org.quartz.core.QuartzScheduler start
INFO: Planificateur DefaultQuartzScheduler_$_NON_CLUSTERED démarré.
Exception in thread "main" java.lang.IllegalArgumentException: La classe Job doit implémenter l'interface Job.
    at org.quartz.JobDetail.setJobClass(JobDetail.java:291)
    at org.quartz.JobDetail.(JobDetail.java:138)
    at com.Quarrtz.RanchSchedule.main(RanchSchedule.java:18)

J'ai inclus Quartz-1.7.2.jar et Quartz-all-1.7.2.jar dans mon chemin de classe avec commom-logging 1,1.jar et jdk 6

Il s'agit d'un exemple que j'ai copié-collé depuis [JavaRanch][1]

Premier exemple sur la page ci-dessus

public interface Job {

    void execute (JobExecutionContext ctx);
}

public class RanchJob implements Job {

    public void execute (JobExecutionContext ctx) throws JobExecutionException {
        System.out.println("[JOB] Bienvenue à JavaRanch");
    }
}

public class RanchSchedule {

    public static void main (String[] args) {       
        try {
            SchedulerFactory factory = new org.quartz.impl.StdSchedulerFactory();

            Scheduler scheduler = factory.getScheduler();
            scheduler.start();

            JobDetail jobDetail = new JobDetail("ranchJob", null, RanchJob.class);
            // Se déclenche toutes les 10 secondes
            Trigger ranchTrigger = TriggerUtils.makeSecondlyTrigger(10); 
            ranchTrigger.setName("ranchTrigger");

            scheduler.scheduleJob(jobDetail, ranchTrigger);
        } catch (SchedulerException ex) {
            ex.printStackTrace();
        }
    }
}

2voto

Michael Cole Points 101

Avez-vous écrit l'interface Job dans votre code source ?

public interface Job {
    void execute (JobExecutionContext ctx);
}

Si tel est le cas, vous n'avez pas à le faire. Quartz a sa propre interface Job (dans quartz.jar). Gardez seulement vos classes RanchJob et RanchSchedule et cela devrait fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X