目录
一、问题描述
二、问题分析
三、问题解决
四、工程源码
4.1maven配置
4.2 web.xml
4.3 spring配置文件
4.4 Quartz配置文件
4.5 定时任务类
4.6 工程总体结构
今天使用Quartz+Spring测试定时任务时,发现报异常:Error creating bean with name 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0' defined in class path resource [applicationContext-quartz.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/transaction/TransactionException
从异常信息最后我们可以看到org/springframework/transaction/TransactionException,居然报的是事务异常,原来Quartz需要事务支持也就是spring-tx包,而我恰好没有导入这个包,所以导致实例化错误
在Maven中加入spring-tx包,然后重新启动服务器即可
4.0.0
com.codecoord
QuartzTest
0.0.1-SNAPSHOT
war
QuartzTest Maven Webapp
http://www.example.com
UTF-8
1.8
1.8
org.quartz-scheduler
quartz
2.3.0
org.springframework
spring-webmvc
4.1.6.RELEASE
org.springframework
spring-context-support
4.1.6.RELEASE
org.springframework
spring-tx
4.1.6.RELEASE
QuartzTest
maven-clean-plugin
3.0.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.7.0
maven-surefire-plugin
2.20.1
maven-war-plugin
3.2.0
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
myTask
0/2 * * * * ?
package com.codecoord.main;
public class QuartzTest {
public void myTask() {
System.out.println("This message is from Quartz!");
}
}