2012-01-25 11 views
5

Estoy intentando utilizar Quartz 2.1.1 con Spring 3.0.5.Error de programador de cuarzo al crear una instancia de trabajo

puedo configurar el Programador con esta línea: <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"/>

escribí una clase simple llamada TestJob que implementa la interfaz Job. Puedo configurar con éxito un trabajo y activarlo y programarlo. El problema es que cuando el trabajo se activa y cuarzo intenta crear una instancia de la clase TestJob, estoy consiguiendo este error:

[scheduler_QuartzSchedulerThread] ERROR core.ErrorLogger.schedulerError(2360) | An error occured instantiating job to be 
executed. job= 'TEST_JOB.6d2e7ca2-20cd-4e5f-9f32-1626c7128a5d' 
org.quartz.SchedulerException: Problem instantiating class 'com.scheduler.TestJob' - [See nes 
ted exception: java.lang.AbstractMethodError: org.springframework.scheduling.quartz.AdaptableJobFactory.newJob(Lorg/quar 
tz/spi/TriggerFiredBundle;Lorg/quartz/Scheduler;)Lorg/quartz/Job;] 
     at org.quartz.core.JobRunShell.initialize(JobRunShell.java:141) 
     at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:381) 
Caused by: java.lang.AbstractMethodError: org.springframework.scheduling.quartz.AdaptableJobFactory.newJob(Lorg/quartz/s 
pi/TriggerFiredBundle;Lorg/quartz/Scheduler;)Lorg/quartz/Job; 
     at org.quartz.core.JobRunShell.initialize(JobRunShell.java:134) 
     ... 1 more 

¿Alguna idea sobre cómo solucionar este problema?

+0

¿Podría mostrar el código de su clase TestJob? ¿Y también la programación de tu trabajo? –

Respuesta

10

Quartz 2 y Spring < 3.1 son incompatibles. Entonces puede actualizar a Spring 3.1 o degradar a Quartz 1.8. O suelta los adaptadores Spring Quartz y utiliza Quartz 2 con la mano. Recomiendo el primer método.

+0

Gracias. Esto funcionó perfectamente –

+0

Tuve que actualizar a la primavera 3.1, que fue un dolor, pero funcionó! ¡Gracias! – portforwardpodcast

+2

Si está actualizando de 3.0 a 3.1, recomiendo esta guía: http://www.heyitsopower.com/code/upgrading-from-spring-3-0-x-to-spring-3-1-x/ – portforwardpodcast

2

También puede asignar el jobFactory al cuarzo fábrica de trabajo personalizado "SimpleJobFactory"

1

acabo de tener un problema muy similar que me llevó aquí - causado por la refactorización paquete de un puesto de trabajo - todo funcionó hasta que fue enviado a un racimo - quartz jdbc usa tablas con la columna job_name con el paquete antiguo persistido, por lo que se bloqueó con el mismo error. Elimine las filas del disparador persistentes o vuelva a colocarlo donde debía resolver.

Cuestiones relacionadas