2012-01-25 44 views
5

Tôi đang cố gắng sử dụng Quartz 2.1.1 với Spring 3.0.5.Lỗi Trình lập lịch biểu Thạch anh khi Lập công việc

tôi thiết lập các Scheduler với dòng này: <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"/>

Tôi đã viết một lớp đơn giản gọi là TestJob mà thực hiện giao diện Job. Tôi có thể thiết lập thành công một công việc và kích hoạt và lên lịch cho nó. Vấn đề là khi công việc được kích hoạt và thạch anh cố gắng nhanh chóng lớp TestJob, tôi nhận được lỗi này:

[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 

Bất kỳ ý tưởng về cách để có được xung quanh vấn đề này?

+0

Bạn có thể hiển thị mã của lớp TestJob không? Và cũng là lịch trình của công việc của bạn? –

Trả lời

10

Quartz 2 và Spring < 3.1 không tương thích. Vì vậy, bạn có thể cập nhật lên Spring 3.1 hoặc hạ cấp xuống Quartz 1.8. Hoặc bạn thả bộ điều hợp Spring Quartz và sử dụng Quartz 2 bằng tay. Tôi đề nghị phương pháp đầu tiên.

+0

Cảm ơn. Điều này làm việc hoàn hảo –

+0

Đã phải nâng cấp lên mùa xuân 3.1 mà là một nỗi đau, nhưng nó đã làm việc! Cảm ơn! – portforwardpodcast

+2

Nếu bạn đang nâng cấp từ 3,0 lên 3,1, tôi khuyên bạn nên hướng dẫn này: http://www.heyitsopower.com/code/upgrading-from-spring-3-0-x-to-spring-3-1-x/ – portforwardpodcast

2

Bạn cũng có thể gán jobFactory để thạch anh nhà máy công việc tùy chỉnh "SimpleJobFactory"

1

Tôi chỉ có một vấn đề rất tương tự đã dẫn tôi đến đây - do refactoring gói của công việc - tất cả mọi thứ đã làm việc cho đến khi nó được triển khai tới một cụm - jdbc thạch anh sử dụng các bảng có cột job_name với gói cũ vẫn tồn tại để nó bị nghẹt thở với cùng lỗi này. Xóa các hàng kích hoạt liên tục hoặc đặt nó trở lại vị trí cần giải quyết.

Các vấn đề liên quan