首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于spring的quratz任务调度有关问题

2011-11-30 
关于spring的quratz任务调度问题调用的方法packagetestpublicclassTestQuarz{publicvoidsayHello(){Syste

关于spring的quratz任务调度问题
调用的方法
package   test;
public   class   TestQuarz   {
  public   void   sayHello()   {        
      System.out.println( "-----------chulai...   ");        
  }  
}

测试的类
package   test;
import   org.springframework.context.ApplicationContext;
import   org.springframework.context.support.FileSystemXmlApplicationContext;
public   class   Test   {
public   static   void   main(String[]   args)   {
ApplicationContext   a   =   new   FileSystemXmlApplicationContext(
"WebContent\\WEB-INF\\applicationContext.xml ");
}
}

spring文件配置
<?xml   version= "1.0 "   encoding= "UTF-8 "?>
<!DOCTYPE   beans   PUBLIC   "-//SPRING//DTD   BEAN//EN "   "http://www.springframework.org/dtd/spring-beans.dtd ">
<beans>
<bean   id= "testQuarz "   class= "test.TestQuarz "   />
<bean   id= "helloworldTask "
class= "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean ">
<property   name= "targetObject ">
<ref   bean= "testQuarz "   />
</property>
<property   name= "targetMethod ">
<value> sayHello </value>
</property>
</bean>
<bean   id= "simpleTrigger "
class= "org.springframework.scheduling.quartz.SimpleTriggerBean ">
<property   name= "jobDetail "   ref= "helloworldTask "   />
<property   name= "startDelay "   value= "1000 "   />
</bean>
<bean
class= "org.springframework.scheduling.quartz.SchedulerFactoryBean ">
<property   name= "triggers ">
<list>
<ref   bean= "simpleTrigger "   />
</list>
</property>
</bean>
</beans>

我运行test类的时候报这个异常
是怎么回事
帮帮忙
谢谢
2007-8-20   22:16:03   org.springframework.core.CollectionFactory   <clinit>
信息:   JDK   1.4+   collections   available
2007-8-20   22:16:04   org.springframework.beans.factory.xml.XmlBeanDefinitionReader   loadBeanDefinitions
信息:   Loading   XML   bean   definitions   from   file   [C:\Documents   and   Settings\Andy\workspace\dafasd\WebContent\WEB-INF\applicationContext.xml]
2007-8-20   22:16:04   org.springframework.context.support.AbstractRefreshableApplicationContext   refreshBeanFactory
信息:   Bean   factory   for   application   context   [org.springframework.context.support.FileSystemXmlApplicationContext;hashCode=21402567]:   org.springframework.beans.factory.support.DefaultListableBeanFactory   defining   beans   [testQuarz,helloworldTask,simpleTrigger,org.springframework.scheduling.quartz.SchedulerFactoryBean];   root   of   BeanFactory   hierarchy
2007-8-20   22:16:04   org.springframework.context.support.AbstractApplicationContext   refresh
信息:   4   beans   defined   in   application   context   [org.springframework.context.support.FileSystemXmlApplicationContext;hashCode=21402567]
2007-8-20   22:16:04   org.springframework.beans.factory.support.DefaultSingletonBeanRegistry   destroySingletons


信息:   Destroying   singletons   in   {org.springframework.beans.factory.support.DefaultListableBeanFactory   defining   beans   [testQuarz,helloworldTask,simpleTrigger,org.springframework.scheduling.quartz.SchedulerFactoryBean];   root   of   BeanFactory   hierarchy}
Exception   in   thread   "main "   org.springframework.beans.factory.CannotLoadBeanClassException:   Error   loading   class   [org.springframework.scheduling.quartz.SimpleTriggerBean]   for   bean   with   name   'simpleTrigger '   defined   in   file   [C:\Documents   and   Settings\Andy\workspace\dafasd\WebContent\WEB-INF\applicationContext.xml]:   problem   with   class   file   or   dependent   class;   nested   exception   is   java.lang.NoClassDefFoundError:   org/quartz/SimpleTrigger
Caused   by:   java.lang.NoClassDefFoundError:   org/quartz/SimpleTrigger
at   java.lang.ClassLoader.defineClass1(Native   Method)
at   java.lang.ClassLoader.defineClass(Unknown   Source)
at   java.security.SecureClassLoader.defineClass(Unknown   Source)
at   java.net.URLClassLoader.defineClass(Unknown   Source)
at   java.net.URLClassLoader.access$100(Unknown   Source)
at   java.net.URLClassLoader$1.run(Unknown   Source)
at   java.security.AccessController.doPrivileged(Native   Method)
at   java.net.URLClassLoader.findClass(Unknown   Source)
at   java.lang.ClassLoader.loadClass(Unknown   Source)
at   sun.misc.Launcher$AppClassLoader.loadClass(Unknown   Source)
at   java.lang.ClassLoader.loadClass(Unknown   Source)
at   org.springframework.util.ClassUtils.forName(ClassUtils.java:177)
at   org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:313)
at   org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:912)
at   org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:165)
at   org.springframework.context.support.AbstractApplicationContext.getBeanNamesForType(AbstractApplicationContext.java:687)
at   org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:397)
at   org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:330)
at   org.springframework.context.support.FileSystemXmlApplicationContext. <init> (FileSystemXmlApplicationContext.java:89)
at   org.springframework.context.support.FileSystemXmlApplicationContext. <init> (FileSystemXmlApplicationContext.java:74)
at   org.springframework.context.support.FileSystemXmlApplicationContext. <init> (FileSystemXmlApplicationContext.java:65)
at   test.Test.main(Test.java:12)


[解决办法]
要改两个地方:
1、要把quartz的类包加到classpath中,在spring的安装目录下的lib\quartz\下就有
2、applicationContext.xml文件中增加
<property name= "repeatInterval ">
<value> 1000 </value>
</property>

完整的applicationContext.xml文件如下:
<?xml version= "1.0 " encoding= "UTF-8 "?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN " "http://www.springframework.org/dtd/spring-beans.dtd ">
<beans>
<bean id= "testQuarz " class= "test.TestQuarz " />
<bean id= "helloworldTask " class= "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean ">


<property name= "targetObject ">
<ref bean= "testQuarz " />
</property>
<property name= "targetMethod ">
<value> sayHello </value>
</property>
</bean>
<bean id= "simpleTrigger " class= "org.springframework.scheduling.quartz.SimpleTriggerBean ">
<property name= "jobDetail " ref= "helloworldTask " />
<property name= "startDelay " value= "1000 " />
<property name= "repeatInterval ">
<value> 1000 </value>
</property>
</bean>
<bean class= "org.springframework.scheduling.quartz.SchedulerFactoryBean ">
<property name= "triggers ">
<list>
<ref bean= "simpleTrigger " />
</list>
</property>
</bean>
</beans>

热点排行