Как добавить SchedulerFactoryBean после обновления Spring 4.3.15 - PullRequest
0 голосов
/ 24 апреля 2018

Я получаю следующую ошибку после обновления с 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

Я внедряю Кварцевый Планировщик в один из моих компонентов следующим образом:

// 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>

// Bean

public class UpdateJobUtils {
    private StdScheduler schedulerFactory;

    public void setSchedulerFactory(StdScheduler schedulerFactory) {
        this.schedulerFactory = schedulerFactory;
    }

    ...
}

Это работало весной 4.3.2 до 4.3.14.Я вижу, https://jira.spring.io/browse/SPR-16439 был перенесен в 4.3.15, поэтому мне интересно, изменит ли он способ, которым я должен использовать этот класс?

1 Ответ

0 голосов
/ 24 апреля 2018

schedulerFactory имеет autowire = "byName" в своей конфигурации.

Я не уверен, почему это произошло, но удаление, похоже, устранило исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...