2012-01-25 11 views
5

私は、Spring 3.0.5でQuartz 2.1.1を使用しようとしています。ジョブをインスタンス化する際のクォータスケジューラエラー

私はこのラインでスケジューラを設定します。 <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を」石英する

1

をjobFactoryを割り当てることができ、私はちょうどここに私を導い非常に同様の問題があった - ジョブのパッケージをリファクタリングによって引き起こされる - それがクラスタにデプロイされたまで、すべてが働いていました - quartz jdbcは、以前のパッケージが永続化されているjob_name列のテーブルを使用して、この同じエラーで窒息します。永続化されたトリガー行を削除するか、解決する場所に戻します。

関連する問題