从Spring 4.3.2升级到Spring 4.3.16后,我收到以下错误:
org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'schedulerFactory': FactoryBean which is currently in creation returned null from getObject
我正在将一个Quartz Scheduler注入我的一个bean中,如下所示:
// XML Config
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" autowire="byName">
<property name="jobFactory">
<bean class="org.springframework.scheduling.quartz.SpringBeanJobFactory"/>
</property>
<property name="applicationContextSchedulerContextKey" value="applicationContext"/>
<property name="dataSource" ref="myDS" />
<property name="triggers">
<list>
<ref bean="updateTrigger"/>
<ref bean="queueUpdateTrigger"/>
</list>
</property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">MyQuartzScheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
<prop key="org.quartz.jobStore.isClustered">true</prop>
<prop key="org.quartz.jobStore.clusterCheckinInterval">60000</prop>
<prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.oracle.OracleDelegate</prop>
<prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
<prop key="org.quartz.threadPool.threadCount">2</prop>
<prop key="org.quartz.threadPool.threadPriority">5</prop>
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread">true</prop>
</props>
</property>
</bean>
<bean name="UpdateJobUtils" class="app.job.UpdateJobUtils" autowire="byType">
<property name="schedulerFactory" ref="schedulerFactory" />
</bean>
//豆
public class UpdateJobUtils {
private StdScheduler schedulerFactory;
public void setSchedulerFactory(StdScheduler schedulerFactory) {
this.schedulerFactory = schedulerFactory;
}
...
}
这在Spring 4.3.2中有效,直到4.3.14。我看到https://jira.spring.io/browse/SPR-16439被移植到4.3.15所以我想知道它是否会改变我应该使用这个类的方式?
答案 0 :(得分:0)
schedulerFactory在其配置上有autowire =“byName”。
我不确定为什么会这样,但删除它似乎已经修复了异常。