Spring4.X整合Quartz2.X
1、引入pom依赖。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.iponkan</groupId> <artifactId>Spring-Quartz</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <properties> <spring-version>4.3.7.RELEASE</spring-version> <quartz-version>2.3.0</quartz-version> </properties> <dependencies> <!-- spring-tx --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring-version}</version> </dependency> <!-- spring-web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring-version}</version> </dependency> <!-- spring-beans --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring-version}</version> </dependency> <!-- spring-core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring-version}</version> </dependency> <!-- spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring-version}</version> </dependency> <!-- quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>${quartz-version}</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>${quartz-version}</version> </dependency> </dependencies> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </project> |
2、applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> </beans> |
3、Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:*.xml </param-value> </context-param> <!-- Spring 容器启动监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app> |
4、编写类。
package cn.iponkan.job; import java.util.Date; public class FirstJob { } |
package cn.iponkan.job; import java.util.Date; public class SecondJob { |
5、完整项目代码下载:https://download.csdn.net/download/qq_36135928/10636871
Spring4.x整合Quartz2.x时出现的一系列错误:
1、
Caused by: java.lang.NoClassDefFoundError: org/quartz/impl/JobDetailImpl |
因为Spring版本和Quartz版本不对应,spring3.1.x要使用quartz1.x版本。 |
2、
Cannot find class [org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean] for bean with name 'jobDetail_1' defined in file [D:\apache-tomcat-7.0.77\wtpwebapps\Spring-Quartz\WEB-INF\classes\applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1385) |
找不到类,引入如下配置: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring-version}</version> </dependency> |
3、
Cannot find class [org.springframework.scheduling.quartz.CronTriggerBean] for bean with name 'cronTrigger_1' defined in file [D:\apache-tomcat-7.0.77\wtpwebapps\Spring-Quartz\WEB-INF\classes\applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.scheduling.quartz.CronTriggerBean |
将CronTriggerBean修改为CronTriggerFactoryBean 补充: 还有的需要将SimpleTriggerBean修改为SimpleTriggerFactoryBean, 将JobDetailBean修改为JobDetailFactoryBean。 |
4、
Error creating bean with name 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0' defined in file [D:\apache-tomcat-7.0.77\wtpwebapps\Spring-Quartz\WEB-INF\classes\applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/transaction |
加入spring的事务依赖: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring-version}</version> </dependency> |