spring.xml配置如下
<bean id="batchLimitAdjustImpl" class="cn.sunline.suncard.acd.batch.service.impl.BatchLimitAdjustImpl">
  <property name="acdCopyToNewApplyService" ref="acdCopyToNewApplyServiceImpl"/>
 </bean>
 
 <bean id="limitAdjustTimerJob" class="org.springframework.scheduling.quartz.JobDetailBean">  
        <property name="jobClass" value="cn.sunline.suncard.acd.batch.job.func.LimitAdjustProcessor"/>  
        <property name="jobDataAsMap">  
            <map>  
                <entry key="batchLimitAdjust" value-ref="batchLimitAdjustImpl"></entry>
            </map>  
        </property>
    </bean>
    
    <!-- 简单的触发器 -->  
    <bean id="simpleLimitAdjustTimerTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">  
        <property name="jobDetail">  
            <ref bean="limitAdjustTimerJob" />  
        </property>  
        <!-- 以毫秒为单位,启动后一分钟触发 -->  
        <property name="startDelay">  
            <value>60000</value>  
        </property>  
        <!-- 每间隔一分钟触发一次 -->  
        <property name="repeatInterval">  
            <value>60000</value>  
        </property>  
    </bean>
    
    <!-- 复杂的触发器 -->
    <bean id="complexLimitAdjustTimerTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
        <property name="jobDetail">  
            <ref bean="limitAdjustTimerJob"/>  
        </property>  
        <property name="cronExpression">  
            <!-- 这里是重点,可以自定义表达式实现定时触发。以下含义是每天16点触发一次 -->  
<value>0 0 16 * * ?</value>
        </property>  
    </bean>
    
    <!-- Spring触发工厂 -->  
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
        <property name="triggers">  
            <list>  
                <ref bean="complexLimitAdjustTimerTrigger"/>  
                <!-- ....下面可以继续添加其他触发器 -->  
            </list>  
        </property>  
    </bean>出现了如下问题,好像是包冲突问题。可是换了quartz-2.1.5.tar、quartz-1.8.6.tar、quartz-1.7.3.tar这些版本都是错的。同样的错误,如下:
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.springframework.scheduling.quartz.JobDetailBean] for bean with name 'limitAdjustTimerJob' defined in ServletContext resource [/WEB-INF/config/spring-jobs.xml]: problem with class file or dependent class; nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.JobDetailBean has interface org.quartz.JobDetail as super class
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1265)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1331)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:897)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:566)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
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:3827)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4334)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.JobDetailBean has interface org.quartz.JobDetail as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:257)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:417)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1283)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1254)

解决方案 »

  1.   

    quartz用 1.8试试。再加 slf4j-api-1.6.1.jar  这个包
      

  2.   

    slf4j-api-1.6.1.jar没换,可换了quartz-2.1.5.tar、quartz-1.8.6.tar、quartz-1.7.3.tar、quartz-all-1.8.5.jar这些版本,问题依旧,求高手帮助...
      

  3.   

    class org.springframework.scheduling.quartz.JobDetailBean has interface org.quartz.JobDetail as super class这是我的错误,spring2.5+quartz2.1.5