当前位置:编程学习 > JAVA >>

spring中集成quartz 集群2.1的版本报错,弄过quartz集群的大神请进!

版本是用的最新的包。2.1.7的。sql语句已经在数据库中运行过,表已经建好了。

quartz.xml 中的代码

<bean id="schedulerFactoryBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="applicationContextSchedulerContextKey" value="applicationContext" />
<property name="configLocation" value="classpath:quartz.properties" />
<!--这个是必须的,QuartzScheduler 延时启动,应用启动完后 QuartzScheduler 再启动 -->
<property name="startupDelay" value="60" />
<!--
这个是可选,QuartzScheduler
启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了
-->
<property name="overwriteExistingJobs" value="true" />
<property name="triggers">
<!-- 多个Trigger在此配置 -->
<list>
<ref bean="billingTimerTrigger" />
</list>
</property>
</bean>
<bean id="billingTimerJob"
class="com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="billingTimer" />
<property name="targetMethod" value="quartzTest" />
<property name="shouldRecover" value="true" />
</bean> 
<bean id="billingTimerTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="billingTimerJob" />
<property name="cronExpression" value="0/10 * * * * ?" />
</bean>

.properties中的配置
 org.quartz.scheduler.instanceName = TestScheduler1 
  org.quartz.scheduler.instanceId = AUTO  
#==============================================================  
 #Configure ThreadPool    
 #==============================================================  
 org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
  org.quartz.threadPool.threadCount = 2 
  org.quartz.threadPool.threadPriority = 5 
   org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true 
   #==============================================================   
   #Configure JobStore    
   #==============================================================  
   org.quartz.jobStore.misfireThreshold = 60000  
   org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX  
   org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate 
   org.quartz.jobStore.tablePrefix = QRTZ_  
   org.quartz.jobStore.maxMisfiresToHandleAtATime=10 
   org.quartz.jobStore.isClustered = true    
   org.quartz.jobStore.clusterCheckinInterval = 20000
java类中的调用
public class BillingTimer implements Serializable {
private static final long serialVersionUID = -8961129525628230999L;
private static final Logger log = Logger.getLogger(BillingTimer.class);
public void quartzTest() {
System.out.println("OK");
}
集群 Quartz Spring --------------------编程问答-------------------- 注意:MethodInvokingJobDetailFactoryBean 已经重写,在网上下载的bean的实例
错误信息:
2013-6-9 11:52:04 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2013-6-9 11:52:04 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.32
2013-6-9 11:52:04 org.apache.catalina.startup.HostConfig deployDescriptor
信息: Deploying configuration descriptor ebg-service.xml
2013-6-9 11:52:04 org.apache.catalina.startup.HostConfig deployDescriptor
警告: A docBase D:\tomcat\apache-tomcat-6.0.32\webapps\ebg-service inside the host appBase has been specified, and will be ignored
2013-6-9 11:52:28 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\tomcat\apache-tomcat-6.0.32\webapps\ebg-service\WEB-INF\lib\servlet-api-2.5.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
2013-6-9 11:52:28 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\tomcat\apache-tomcat-6.0.32\webapps\ebg-service\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
2013-6-9 11:52:33 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
DEBUG[]2013-06-09 11:52:37 [com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(305)] - start
DEBUG[]2013-06-09 11:52:37 [com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(307)] - Creating JobDetail billingTimerJob
DEBUG[]2013-06-09 11:52:37 [com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(326)] - Registering JobListener names with JobDetail object billingTimerJob
INFO []2013-06-09 11:52:37 [com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(332)] - Created JobDetail: JobDetail 'DEFAULT.billingTimerJob':  jobClass: 'com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean$MethodInvokingJob isStateful: false isVolatile: false isDurable: false requestsRecovers: true; targetClass: null; targetObject: com.cpic.ebg.common.util.quartz.BillingTimer@10e687b; targetMethod: quartzTest; staticMethod: null; arguments: null;DEBUG[]2013-06-09 11:52:37 [com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(336)] - end
2013-6-9 11:52:38 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'schedulerFactoryBean' defined in class path resource [appContext-quartz.xml]: Invocation of init method failed; nested exception is org.quartz.SchedulerException: Registration of jobs and triggers failed: Inconsistent Quartz 2.0 API: java.lang.NoSuchMethodException: org.quartz.Scheduler.getTrigger(org.quartz.TriggerKey) [See nested exception: java.lang.IllegalStateException: Inconsistent Quartz 2.0 API: java.lang.NoSuchMethodException: org.quartz.Scheduler.getTrigger(org.quartz.TriggerKey)]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.context.support.DefaultLifecycleProcessor.getLifecycleBeans(DefaultLifecycleProcessor.java:274) at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:125) at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:108) at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:926)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:467) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283 at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.quartz.SchedulerException: Registration of jobs and triggers failed: Inconsistent Quartz 2.0 API: java.lang.NoSuchMethodException: org.quartz.Scheduler.getTrigger(org.quartz.TriggerKey) [See nested exception: java.lang.IllegalStateException: Inconsistent Quartz 2.0 API: java.lang.NoSuchMethodException: org.quartz.Scheduler.getTrigger(org.quartz.TriggerKey)]
at org.springframework.scheduling.quartz.SchedulerAccessor.registerJobsAndTriggers(SchedulerAccessor.java:322)
at org.springframework.scheduling.quartz.SchedulerFactoryBean.afterPropertiesSet(SchedulerFactoryBean.java:511)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
... 38 more
Caused by: java.lang.IllegalStateException: Inconsistent Quartz 2.0 API: java.lang.NoSuchMethodException: org.quartz.Scheduler.getTrigger(org.quartz.TriggerKey)
at org.springframework.scheduling.quartz.SchedulerAccessor.triggerExists(SchedulerAccessor.java:435)
at org.springframework.scheduling.quartz.SchedulerAccessor.addTriggerToScheduler(SchedulerAccessor.java:359)
at org.springframework.scheduling.quartz.SchedulerAccessor.registerJobsAndTriggers(SchedulerAccessor.java:303)
... 41 more
2013-6-9 11:52:38 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2013-6-9 11:52:38 org.apache.catalina.core.StandardContext start
严重: Context [/ebg-service] startup failed due to previous errors
2013-6-9 11:52:38 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2013-6-9 11:52:38 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/ebg-service] appears to have started a thread named [schedulerFactoryBean_Worker-1] but has failed to stop it. This is very likely to create a memory leak.
2013-6-9 11:52:38 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/ebg-service] appears to have started a thread named [schedulerFactoryBean_Worker-2] but has failed to stop it. This is very likely to create a memory leak.
2013-6-9 11:52:38 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads


在线求助啊!!!!!! --------------------编程问答-------------------- [com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(305)] - start
[com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(307)] - Creating JobDetail billingTimerJob
[com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(326)] - Registering JobListener names with JobDetail object billingTimerJob
[com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(332)] - Created JobDetail: JobDetail 'DEFAULT.billingTimerJob':  jobClass: 'com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean$MethodInvokingJob isStateful: false isVolatile: false isDurable: false requestsRecovers: true; targetClass: null; targetObject: com.cpic.ebg.common.util.quartz.BillingTimer@10e687b; targetMethod: quartzTest; staticMethod: null; arguments: null;
[com.cpic.ebg.common.util.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(336)] - end[/b]
执行到这里还是正常的。下面就报错了
Error creating bean with name 'schedulerFactoryBean' defined in class path resource [appContext-quartz.xml]: Invocation of init method failed; nested exception is org.quartz.SchedulerException: Registration of jobs and triggers failed: Inconsistent Quartz 2.0 API: java.lang.NoSuchMethodException: org.quartz.Scheduler.getTrigger(org.quartz.TriggerKey) [See nested exception --------------------编程问答-------------------- 哎
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,