Spring配置Quartz发生异常
Quartz是一个很好的定时任务调度组件,关于Quartz的基本概念,请参阅http://www.opensymphony.com/quartz。spring将Quartz很好的集成在了一起。关于spring中Quartz的用法,网上很多,这里就不在叙述,大家可以查阅相关资料,这里主要描述在开发中遇到的一个问题。这是我spring的配置文件:<bean ? id="LoadDists" ? ? />
</list>
</property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.jobStore.class">
org.quartz.simpl.RAMJobStore
</prop>
</props>
</property>
</bean>
可错误依旧。
?
我用的是spring+hibernate的框架,单独使用Quartz或hibernate都运行得很好。和在一起就报错。
研究了半天,看了SchedulerFactoryBean的源代码,终于找到了问题。原来问题出在我定义的datasource:
<bean id="dataSource" value="${jdbc.jndiName}" />??
<bean>
SchedulerFactoryBean中的数据源属性名也叫datasource,我将整个系统的数据源名称定义为dataSource后,Quartz就将dataSource注入,同时认为应该从数据库中查询任务。所以出现上面的错误。
将<bean id="dataSource" value="${jdbc.jndiName}" />??
<bean>
改为
<bean id="ds1" value="${jdbc.jndiName}" />??
<bean>
后,问题解决。
这应该是Quartz的一个小小bug,希望它的新版本能解决这个问题。
?
此文转载自:东华_励志人生的BLOG
http://blog.sina.com.cn/s/blog_5537a55301000b8b.html