spring+quartz的异常,不能正常启动

asheme 2011-01-11 11:19:14
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)

高手给解决下!!
...全文
12867 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxixrh 2012-12-28
  • 打赏
  • 举报
回复 9
看到这样的帖子 我就想骂一句楼主 你的问题那么多人关注 还有人回答你 你就不能把你解决的方法说哈啊
happyfmy 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 dongchunguo 的回复:]

搞定,不是quartz的问题,是其他配置的问题!
[/Quote]
呵呵 好吧
我在肖申克 2011-01-12
  • 打赏
  • 举报
回复
看看你的任务怎么写的, 你调用你的业务方法, 那个业务类必须注入
asheme 2011-01-12
  • 打赏
  • 举报
回复
这个配过了,没有反应的,我写了个测试,用main函数调用是没有问题的,搞不懂怎么回事了!
我在肖申克 2011-01-12
  • 打赏
  • 举报
回复
当然可以了, 你要配置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>

asheme 2011-01-12
  • 打赏
  • 举报
回复
ztglf521,这样的配置,在tomcat下,能不能随着tomcat的启动就自动启动了?
zn85600301 2011-01-12
  • 打赏
  • 举报
回复


<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) 方法
我在肖申克 2011-01-12
  • 打赏
  • 举报
回复
定义调度

<!-- 定义调度 -->
<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>
我在肖申克 2011-01-12
  • 打赏
  • 举报
回复
肯定是哪些对象没配置对, 我懒得看了, 给你一个我用的

// 这是任务类
@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>

asheme 2011-01-12
  • 打赏
  • 举报
回复
搞定,不是quartz的问题,是其他配置的问题!
LimLamgSKY 2021-06-20
  • 举报
回复 6
@asheme 那你倒是说哪里的配置问题啊

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧