在Spring 中使用基于Quartz的定时任务 出现了错误,请做过这方面的朋友帮帮忙
xml文件的配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="triggerJobTester" />
</list>
</property>
</bean>
<!-- 描述了一个定时处理的机制 -->
<bean id="triggerJobTester"
class="org.springframework.scheduling.quartz.SimpleTriggerBean"
p:jobDetail-ref="jobDetailTesterTarget" p:startDelay="1000"
p:repeatInterval="2000">
</bean>
<!-- 指定定时器要定时执行的类和方法 -->
<bean id="jobDetailTesterTarget"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
p:targetObject-ref="regexMgr" p:targetMethod="updateList">
</bean>
<!-- 将session注入到hibernate实现-->
<bean id="daoSupportHibernate"
class="org.fjh.cartoon.dao.DaoSupportHibernate3">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--regexMgr的注入 -->
<bean id="regexMgr" class="org.fjh.cartoon.service.RegexService">
<property name="daoSupport" ref="daoSupportHibernate" />
</bean>
</beans>
当定时任务的方法为简单的输入语句之类的没有问题,没有报错,可是任务方法改为Server层的方法时,就报了以下异常
>>>>>>>LOG4J<<<<<<< 0 2008-07-27 16:51:03,531 [DefaultQuartzScheduler_Worker-1] ERROR org.quartz.core.JobRunShell - #org.quartz.core.JobRunShell.run(JobRunShell.java:211)# - Job DEFAULT.jobDetailTesterTarget threw an unhandled Exception:
java.lang.NoSuchMethodError: org.quartz.JobExecutionException.<init>(Ljava/lang/String;Ljava/lang/Exception;Z)V
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:221)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
>>>>>>>LOG4J<<<<<<< 15 2008-07-27 16:51:03,546 [DefaultQuartzScheduler_Worker-1] ERROR org.quartz.core.ErrorLogger - #org.quartz.core.ErrorLogger.schedulerError(QuartzScheduler.java:2156)# - Job (DEFAULT.jobDetailTesterTarget threw an exception.
org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.NoSuchMethodError: org.quartz.JobExecutionException.<init>(Ljava/lang/String;Ljava/lang/Exception;Z)V]
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: java.lang.NoSuchMethodError: org.quartz.JobExecutionException.<init>(Ljava/lang/String;Ljava/lang/Exception;Z)V
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:221)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
... 1 more
我想实现,定时执行我Service层里面的一个业务逻辑方法。
单独运行Service里面的方法是没有问题的,定时的方法改成普通的输出语句也是没有问题的,已经把jar包更新到最新。
在网上找了几种的配置方法,试过了都是报上面那个异常。
很想请教一下做过这方面的前辈,这个问题是不是配置有问题呢?是不是由于regexMgr这个bean里面的类引用了其他的bean而导致出错了呢?
谢谢所有热心回答的人