Spring-версия: 2.0.7 интегрирована с кварцем? - PullRequest
1 голос
/ 20 мая 2011

Я использую Spring-Version: 2.0.7, нужно ли мне загружать кварцевые библиотеки и их зависимости, чтобы использовать его?сначала я думал, что это было необходимо, но это дает мне java.lang.IncompatibleClassChangeError.

Так что я подумал, что, возможно, он был интегрирован в spring.jar, так как в соответствии с пружиной 2.5 бин вызываетсяконтекст приложения через библиотеку Spring.

Как только я удалил quarta.jar, я не могу получить доступ к классу JobExecutionContext.Вот мое объявление бина:

<bean name="exampleJob" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="com.bamboo.common.util.CheckAndProcessFilesJob" />
    <property name="jobDataAsMap">
    <map>
      <entry key="timeout" value="5" />
    </map>
    </property>
</bean>

Java-код

package com.bamboo.common.util;

import org.springframework.scheduling.quartz.QuartzJobBean;


    /**
     * Created by IntelliJ IDEA.
     * User: ernestobuttolazio
     * Date: 19-may-2011
     * Time: 16:44:54
     * To change this template use File | Settings | File Templates.
     */
    public class CheckAndProcessFilesJob extends QuartzJobBean {
        private int timeout;

        private int contador;
         /**
       * Setter called after the ExampleJob is instantiated
       * with the value from the JobDetailBean (5)
       */
      public void setTimeout(int timeout) {
        this.timeout = timeout;
      }

     protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException {
          // do the actual work
         contador += timeout;
      }

    }

Ответы [ 3 ]

3 голосов
/ 29 ноября 2012

Вам необходимо использовать кварц 2.1.6.Вместо JobDetailBean следует использовать JobDetailFactoryBean. Конфигурация будет выглядеть так:

    <bean name="sampleJobDetail"
            class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
            <property name="jobClass"
                value="com.altisource.scheduler.jobs.SampleJob" />
            <property name="jobDataAsMap">
                <map>
                </map>
            </property>

        </bean>

        <bean id="sampleTrigger"
            class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
            <property name="jobDetail" ref="sampleJobDetail" />
            <property name="startDelay" value="30000" />
            <property name="repeatInterval" value="30000" />
            <property name="group" value="YOURCHOICE" />
        </bean>

Если вы используете кварц с кластеризацией, фабрика планировщика org.springframework.scheduling.quartz.SchedulerFactoryBean примет только свойство triggers и ограничит предоставление jobDetails.Убедитесь, что вы настроили фабрику планировщика org.springframework.scheduling.quartz.SchedulerFactoryBean только с triggers.

2 голосов
/ 20 мая 2011

Вам необходимо использовать Quartz 1.8.x или более раннюю версию с текущими обертками Spring. Кварц 2.0 не работает с ними.

Вы можете использовать Quartz 2.0 вместе с Spring без проблем - только не с обертками Spring.

1 голос
/ 29 июля 2011

версии Quartz 2.x не совместимы с пружиной. Некоторые классы более ранних версий были преобразованы в интерфейсы в кварце 2.x. Но, тем не менее, его можно использовать с пружиной, без поддержки интеграции. Проверьте эту ссылку http://shyarmal.blogspot.com/2011/07/quartz-20-schedule-cron-with-spring.html.

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