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

spring+quartz的错误,不能正常启动

2013-01-21 
spring+quartz的异常,不能正常启动spring中quartz的配置如下:bean idmailResumeReadAndParseJob lazy-

spring+quartz的异常,不能正常启动
spring中quartz的配置如下:

<bean id="mailResumeReadAndParseJob" lazy-init="false" class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass">
      <value>cn.com.ht.tja.mailtask.MailResumeReadAndParseTask</value>
    </property>
    </bean>
    
    <bean id="simpleReportTrigger" lazy-init="false" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail">
    <ref bean="mailResumeReadAndParseJob"/>
    </property>
    <property name="startDelay">
    <value>10000</value>
    </property>
    <property name="repeatInterval">
    <value>10000</value>
    </property>
    </bean>
    
    <bean lazy-init="false" autowire="no" id="quartzLoader" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
    <list>
    <ref bean="simpleReportTrigger" />
    </list>
    </property>
     </bean>

系统异常如下:
 INFO [main] (QuartzScheduler.java:244) - Scheduler meta-data: Quartz Scheduler
(v1.8.4) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'
  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
  NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persis
tence. and is not clustered.

 INFO [main] (StdSchedulerFactory.java:1280) - Quartz scheduler 'DefaultQuartzSc
heduler' initialized from default resource file in Quartz package: 'quartz.prope
rties'
 INFO [main] (StdSchedulerFactory.java:1284) - Quartz scheduler version: 1.8.4
 INFO [main] (QuartzScheduler.java:500) - Scheduler DefaultQuartzScheduler_$_NON
_CLUSTERED started.
 INFO [main] (XmlConfigurationProvider.java:140) - Parsing configuration file [s
truts-default.xml]
 INFO [main] (XmlConfigurationProvider.java:140) - Parsing configuration file [s
truts-plugin.xml]
 INFO [main] (XmlConfigurationProvider.java:140) - Parsing configuration file [s
truts.xml]
 WARN [main] (Settings.java:143) - Settings: Could not parse struts.locale setti
ng, substituting default VM locale
2011-1-11 23:18:58 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2011-1-11 23:18:58 org.apache.catalina.core.StandardContext start
严重: Context [/mailresume] startup failed due to previous errors


 INFO [main] (AbstractApplicationContext.java:938) - Closing Root WebApplication
Context: startup date [Tue Jan 11 23:18:57 CST 2011]; root of context hierarchy
 INFO [main] (QuartzScheduler.java:537) - Scheduler quartzLoader_$_NON_CLUSTERED
 paused.
 INFO [main] (DefaultSingletonBeanRegistry.java:421) - Destroying singletons in
org.springframework.beans.factory.support.DefaultListableBeanFactory@6fa9fc: def
ining beans [mailResumeReadAndParseJob,simpleReportTrigger,quartzLoader]; root o
f factory hierarchy
 INFO [main] (SchedulerFactoryBean.java:760) - Shutting down Quartz Scheduler
 INFO [main] (QuartzScheduler.java:616) - Scheduler quartzLoader_$_NON_CLUSTERED
 shutting down.
 INFO [main] (QuartzScheduler.java:537) - Scheduler quartzLoader_$_NON_CLUSTERED
 paused.
 INFO [main] (QuartzScheduler.java:686) - Scheduler quartzLoader_$_NON_CLUSTERED
 shutdown complete.
2011-1-11 23:18:58 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2011-1-11 23:18:58 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2011-1-11 23:18:58 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/20  config=null
2011-1-11 23:18:58 org.apache.catalina.startup.Catalina start
信息: Server startup in 2153 ms
Exception in thread "Timer-1" java.lang.NullPointerException
        at org.slf4j.impl.Log4jLoggerAdapter.debug(Log4jLoggerAdapter.java:209)
        at org.quartz.utils.UpdateChecker.checkForUpdate(UpdateChecker.java:51)
        at org.quartz.utils.UpdateChecker.run(UpdateChecker.java:39)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)

高手给解决下!!
[解决办法]
肯定是哪些对象没配置对, 我懒得看了, 给你一个我用的


// 这是任务类
@Component(value="Job1")
public class Job01{

public void queryTradeClosed() {
// 你的任务
}

}



   <bean id="quartzScheduler1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="Job1"></property>
<property name="targetMethod">
<value>queryTradeClosed</value>
</property>
</bean>

<!-- 定义触发器 -->
<bean id="cronTrigger1" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="quartzScheduler1"></property>
<property name="cronExpression">
<value>0 0 0/1 * * ?</value>     <!-- 一小时一次 -->
<!--<value>0/60 * * * * ?</value> -->   <!--60S一次 -->
</property>
</bean>


[解决办法]
定义调度


<!-- 定义调度 -->
<bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
<property name="triggers">
<list>
<ref local="cronTrigger1"/>
</list>
</property>
</bean>


我在三楼的任务类用的是注解注入
当然你也可以用xml的形式注入, 如下

    <bean id="Job1" class="你的包名.Job01"></bean>

[解决办法]


 <bean name="contReportTask"  
         class="org.springframework.scheduling.quartz.JobDetailBean">  
         <property name="jobClass" value="com.dt.test.ContentThread" />  
      
     </bean>  
   
       <!-- 触发器 -->  
     <bean id="contCronTrigger"  
         class="org.springframework.scheduling.quartz.CronTriggerBean">  
   
         <!-- 指向我们的任务 -->  
         <property name="jobDetail" ref="contReportTask" />  
   
         <!--  每2分钟运行一次 -->  
         <property name="cronExpression" value="0 0/1 * * * ?" />  
     </bean>  
   
   
     <!-- 调度器  -->  
     <bean  
         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
         <property name="triggers">  
             <list>  
                 <!--  触发器列表  -->
                  <ref bean="contCronTrigger" />          
             </list>  
         </property>  
     </bean>  


public class ContentThread extends Thread implements org.quartz.Job
重新public void execute(JobExecutionContext arg0) 方法
[解决办法]
当然可以了, 你要配置web.xml啊, 去监听spring

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application.xml</param-value>
                <!-- application.xml你的spring配置 -->


  </context-param>
  
  <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>


热点排行