2012-01-25 3 views
5

Quartz 2.1.1을 Spring 3.0.5와 함께 사용하려고합니다.인스턴스를 생성 할 때 Quartz Scheduler 오류가 발생했습니다.

나는이 라인 스케줄러를 설정 : <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"/>

은 내가 Job 인터페이스를 구현 TestJob라는 간단한 클래스를 썼다. 성공적으로 작업을 설정하고 트리거하고 일정을 수립 할 수 있습니다. 이 문제를 해결하는 방법에 대한

[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 

어떤 아이디어 : 문제는 작업을 트리거 및 석영이 TestJob 클래스를 인스턴스화하려고 할 때, 나는이 오류를 얻고 있다는 것입니다?

+0

TestJob 클래스의 코드를 표시 할 수 있습니까? 그리고 또한 당신의 일의 스케줄링? –

답변

10

Quartz 2 및 Spring < 3.1은 호환되지 않습니다. 따라서 Spring 3.1로 업데이트하거나 Quartz 1.8로 다운 그레이드 할 수 있습니다. 또는 Spring Quartz 어댑터를 드롭하고 Quartz 2를 직접 사용하십시오. 나는 첫 번째 방법을 추천한다.

+0

감사합니다. 이것은 완벽하게 작동했습니다. –

+0

스프링 3.1로 업그레이드해야했는데 그런 고통이있었습니다. 감사! – portforwardpodcast

+2

3.0에서 3.1로 업그레이드하는 경우이 가이드를 권장합니다. http://www.heyitsopower.com/code/upgrading-from-spring-3-0-x-to-spring-3-1-x/ – portforwardpodcast

2

당신은 또한 사용자 정의 작업 공장 "SimpleJobFactory을"석영하기 위해 jobFactory을 할당 할 수 있습니다

1
난 그냥 여기 나를 이끄는 매우 비슷한 문제가 있었다

- 작업의 패키지를 리팩토링에 의해 발생 - 모든 일을이 클러스터에 배포 된 때까지 - quartz jdbc는 job_name 열이있는 테이블을 사용하고 이전 패키지는 지속되어이 동일한 오류로 막혔다. 지속 된 트리거 행을 삭제하거나 해결할 위치로 되돌립니다.

관련 문제