定时触发器quartz 问题

问题描述

配置文件 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"default-lazy-init="false"><!-- 要调用的工作类 --><bean id="job1" class="mainTest.Test1"></bean><!-- 定义调用对象和调用对象的方法 --><bean id="jobDetail_1"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><!-- 调用的类 --><property name="targetObject"><ref bean="job1" /></property><!-- 调用类中的方法 --><property name="targetMethod"><value>work</value></property></bean><!-- 定义触发时间 --><bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail"><ref bean="jobDetail_1" /></property><!-- cron表达式 --><property name="cronExpression"><!-- 每隔10秒执行一次 --><value>0/10 * * * * ?</value></property></bean><!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --><bean id="startQuertz" lazy-init="false" autowire="no"class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="doTime" /></list></property></bean></beans> 报错内容2011-11-21 18:01:48 org.springframework.web.context.ContextLoader initWebApplicationContextSEVERE: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jobDetail_1' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.InstantiationError: org.quartz.JobDetailat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:545)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196)at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)at java.util.concurrent.FutureTask.run(FutureTask.java:166)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)at java.lang.Thread.run(Thread.java:732)Caused by: java.lang.InstantiationError: org.quartz.JobDetailat org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(MethodInvokingJobDetailFactoryBean.java:177)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1400)... 20 more2011-11-21 18:01:48 org.apache.catalina.core.StandardContext listenerStartSEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jobDetail_1' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.InstantiationError: org.quartz.JobDetailat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:545)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196)at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)at java.util.concurrent.FutureTask.run(FutureTask.java:166)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)at java.lang.Thread.run(Thread.java:732)Caused by: java.lang.InstantiationError: org.quartz.JobDetailat org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean.afterPropertiesSet(MethodInvokingJobDetailFactoryBean.java:177)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1400)... 20 more2011-11-21 18:01:48 org.apache.catalina.core.StandardContext startInternalSEVERE: Error listenerStart2011-11-21 18:01:48 org.apache.catalina.core.StandardContext startInternalSEVERE: Context [/quartz] startup failed due to previous errors2011-11-21 18:01:48 org.apache.catalina.core.ApplicationContext logINFO: Closing Spring root WebApplicationContext2011-11-21 18:01:48 org.apache.coyote.AbstractProtocolHandler startINFO: Starting ProtocolHandler ["http-bio-8080"]2011-11-21 18:01:48 org.apache.coyote.AbstractProtocolHandler startINFO: Starting ProtocolHandler ["ajp-bio-8009"]2011-11-21 18:01:48 org.apache.catalina.startup.Catalina startINFO: Server startup in 1014 ms 问题补充:asyty 写道

解决方案

你木有发现是同一位嚒 =。= 换1.8.5的啥版本的jar包试试
解决方案二:
Spring3.x还不支持quartz 2 所以把jar包换成1.X版本
解决方案三:
引用nested exception is java.lang.InstantiationError: org.quartz.JobDetail 你用的是quartz 2.X版本吧,在1.X版本里,org.quartz.JobDetail是一个类,但是在2.x里已经改成了interface,所以不能直接这样了。。。

时间: 2024-09-20 10:28:31

定时触发器quartz 问题的相关文章

无异常 无错误-批量定时(使用quartz.jar) hibernate3.1.3+Spring1.2.8 程序运行一段时间停止

问题描述 批量定时(使用quartz.jar) hibernate3.1.3+Spring1.2.8 程序运行一段时间停止 程序使用Hibernate 3.1.3+Spring 1.2.8,使用dbcp数据库连接,在程序中使用Quartz.jar定时四个任务,每天定时执行,运行几天后所有任务都不执行了,好像死锁了一样,无异常.无错误抛出,重新启动后又可正常执行.求高手指点,日志如下: 2013-09-17 21:00:41,859 org.hibernate.cfg.SettingsFactor

配置-SpringBatch 和 quartz定时,quartz调用多个springbatchjob异常,

问题描述 SpringBatch 和 quartz定时,quartz调用多个springbatchjob异常, 异常如下: 2015-05-12 11:49:30.046 [startQuertz_Worker-5] ERROR org.quartz.core.JobRunShell - Job DEFAULT.busBatchJobDetail threw an unhandled Exception: org.springframework.dao.CannotSerializeTransa

定时组件quartz系列&lt;一&gt;模拟定时组件小程序

一.核心概念 Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可. 1.Job表示一个工作,要执行的具体内容.此接口中只有一个方法void execute(JobExecutionContext context) 2.JobDetailJobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略. 3.Trigger代表一个调度参数的配置,什么时候去调. 4.Sched

定时组件quartz系列&lt;二&gt;quartz的原理

Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便.   一.核心概念   Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可.   1.Job 表示一个工作,要执行的具体内容.此接口中只有一个方法 void execute(JobExecutionContext context)   2.JobDetail JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这

定时组件quartz系列&lt;三&gt;quartz调度机制调研及源码分析

quartz2.2.1集群调度机制调研及源码分析引言quartz集群架构调度器实例化调度过程触发器的获取触发trigger:Job执行过程:总结:附:   引言 quratz是目前最为成熟,使用最广泛的java任务调度框架,功能强大配置灵活.在企业应用中占重要地位.quratz在集群环境中的使用方式是每个企业级系统都要考虑的问题.早在2006年,在ITeye上就有一篇关于quratz集群方案的讨论:http://www.iteye.com/topic/40970 ITeye创始人@Robbin在

定时组件quartz系列&lt;二&gt;quartz的集群原理

1.基本信息:      Quartz是一个开源的作业调度框架,它完全由java写成,并设计用于J2Se和J2EE应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它 来为执行一个作业而创建简单的或复杂的调度.它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron- like表达式等等.其中集群配置一般比较复杂,那么在Quartz中如何配置它的集群特性呢? 2 Quartz的集群配置:      2.1 实现集群的基本原理           Quar

Spring整合Quartz实现定时任务调度的方法_java

最近项目中需要实现定时执行任务,比如定时计算会员的积分.调用第三方接口等,由于项目采用spring框架,所以这里结合spring框架来介绍. 编写作业类 即普通的pojo,如下: package com.pcmall.task; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TaskA { private static Logger logger = LoggerFactory.getLogger(Ta

java中quartz调度在一些定时任务(job)的入门级应用

Quartz 执行详解:http://quartz-scheduler.org/   去下载相应的jar包 在maven中可直接把依赖拷贝过来复制到pom中去. 具体规则可查询quartz的文档 下面是一个非常详细的实例: 1.首先把需要执行的任务写到execute中去 并实现job package job; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import or

Quartz 定时器任务调度

Job:是一个接口只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下文的各种信息.Job运行时的信息保存在 JobDataMap实例中 第一种,作业类继承自特定的基  1.8测试成功,2.0不行类:org.springframework.scheduling.quartz.QuartzJobBean. java类代码 package com.ncs.hj;   imp