java - Spring 4.0.1 + quartz 1.5.2

标签 java spring maven spring-mvc quartz-scheduler

我正在尝试使用 Spring 4.0.1 和 Quartz 1.5.2 创建一个 cron 作业,但是当我在我的服务器上运行它时出现错误。错误显示:

严重:Web 应用程序 [/SpringRestSample] 中的 Servlet [appServlet] 抛出 load() 异常 java.lang.ClassNotFoundException:org.quartz.impl.JobDetailImpl 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) 在 java.lang.Class.getDeclaredMethods0( native 方法) 在 java.lang.Class.privateGetDeclaredMethods(未知来源) 在 java.lang.Class.getDeclaredMethods(未知来源)

我的 xml 配置是:

<beans:bean id="removeExpiredSessionFetchJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
    <beans:property name="jobClass">
        <beans:value>com.iris.spring.rest.model.RemoveExpiredSessionFetchJob</beans:value>
    </beans:property>
</beans:bean> 

<beans:bean id="removeExpiredSessionTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

    <beans:property name="jobDetail">
        <beans:ref bean="removeExpiredSessionFetchJob" />
    </beans:property>

    <beans:property name="cronExpression">
        <!--  <value>0 0/55 * * * ?</value> -->
        <beans:value>0 */1 * * * ?</beans:value>
    </beans:property>
</beans:bean>


<beans:bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <beans:property name="triggers">

        <beans:list>
            <beans:ref bean="removeExpiredSessionTrigger" />

         </beans:list>

    </beans:property>
</beans:bean> 

我的 pom.xml 是:

<properties>
    <java-version>1.6</java-version>
    <org.springframework-version>4.1.0.RELEASE</org.springframework-version>
    <org.aspectj-version>1.7.4</org.aspectj-version>
    <org.slf4j-version>1.7.5</org.slf4j-version>
    <jackson.databind-version>2.2.3</jackson.databind-version>
</properties>

<dependency>
    <groupId>quartz</groupId>
    <artifactId>quartz</artifactId>
    <version>1.5.2</version>
</dependency>

最佳答案

quartz/quartz 是一些旧的 Quartz 版本,根据 Maven Repository webpage已移至 org.quartz-scheduler/quartz。因此,根据您的堆栈跟踪,包含类 JobDetailImpl 的正确 Quartz 依赖项应该是:

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>

关于java - Spring 4.0.1 + quartz 1.5.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32667532/

相关文章:

java - 在 Spring Boot 中,值不会从 @requestmapping 中从表单填充到 html

java - 将 GWT CodeServer 与 Jetty 分开

java - Gradle依赖项未列出本地maven jar的依赖项

spring - 将图像上传到 Spring Boot 和 S3 all In-Memory

Android: gradle exclude commons-codec

Eclipse 显示错误,即使 maven 构建成功

java - Spring安全用户详细信息: org. springframework.security.authentication.DisabledException

java - ScrollView 落后于 Android 中的按钮

java - 无法打开编辑器错误

java - Spring 返回 null ModelAndView 给 DispatcherServlet