Quartz异常-Error creating bean with name ‘org.springframework.scheduling.quartz.SchedulerFactoryBean「建议收藏」

Quartz异常-Error creating bean with name ‘org.springframework.scheduling.quartz.SchedulerFactoryBean「建议收藏」目录一、问题描述二、问题分析三、问题解决四、工程源码4.1maven配置4.2 web.xml4.3spring配置文件4.4 Quartz配置文件4.5定时任务类4.6工程总体结构一、问题描述  今天使用Quartz+Spring测试定时任务时,发现报异常:Errorcreatingbeanwithname’org.spring…

大家好,又见面了,我是你们的朋友全栈君。

目录

一、问题描述

二、问题分析

三、问题解决

四、工程源码

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

Quartz异常-Error creating bean with name 'org.springframework.scheduling.quartz.SchedulerFactoryBean「建议收藏」

二、问题分析

     从异常信息最后我们可以看到org/springframework/transaction/TransactionException,居然报的是事务异常,原来Quartz需要事务支持也就是spring-tx包,而我恰好没有导入这个包,所以导致实例化错误

三、问题解决

    在Maven中加入spring-tx包,然后重新启动服务器即可

四、工程源码

4.1maven配置

<?xml version="1.0" encoding="UTF-8"?>

<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>com.codecoord</groupId>
	<artifactId>QuartzTest</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<name>QuartzTest Maven Webapp</name>
	<!-- FIXME change it to the project's website -->
	<url>http://www.example.com</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>

	<dependencies>
	
		<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>2.3.0</version>
		</dependency>
		
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.1.6.RELEASE</version>
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>4.1.6.RELEASE</version>
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>4.1.6.RELEASE</version>
		</dependency>
	</dependencies>

	<build>
		<finalName>QuartzTest</finalName>
		<pluginManagement><!-- lock down plugins versions to avoid using Maven 
				defaults (may be moved to parent pom) -->
			<plugins>
				<plugin>
					<artifactId>maven-clean-plugin</artifactId>
					<version>3.0.0</version>
				</plugin>
				<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
				<plugin>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.0.2</version>
				</plugin>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.7.0</version>
				</plugin>
				<plugin>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.20.1</version>
				</plugin>
				<plugin>
					<artifactId>maven-war-plugin</artifactId>
					<version>3.2.0</version>
				</plugin>
				<plugin>
					<artifactId>maven-install-plugin</artifactId>
					<version>2.5.2</version>
				</plugin>
				<plugin>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>2.8.2</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

4.2 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
	
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
</web-app>

4.3 spring配置文件

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"  
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:task="http://www.springframework.org/schema/task"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
						http://www.springframework.org/schema/beans/spring-beans.xsd 
						http://www.springframework.org/schema/tx 
						http://www.springframework.org/schema/tx/spring-tx.xsd 
						http://www.springframework.org/schema/context 
						http://www.springframework.org/schema/context/spring-context.xsd
						http://www.springframework.org/schema/mvc
						http://www.springframework.org/schema/mvc/spring-mvc-.xsd
						http://www.springframework.org/schema/task  
						http://www.springframework.org/schema/task/spring-task.xsd
						http://www.springframework.org/schema/aop  
           				http://www.springframework.org/schema/aop/spring-aops.xsd">
	<!-- 导入quartz配置文件 -->
	<import resource="classpath:applicationContext-quartz.xml"/>
</beans>

4.4 Quartz配置文件

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans.xsd">
        
        <!-- 任务类  -->
        <bean id="myJob" class="com.codecoord.main.QuartzTest"/>
        
        <!-- 任务明细 -->
        <bean id="task" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <!-- 作业类 -->
            <property name="targetObject">
                <ref bean="myJob"/>
            </property>
            <!-- 作业类方法 -->
            <property name="targetMethod">
                <value>myTask</value>
            </property>
        </bean>
        
        <!-- 执行计划-触发器 -->
        <bean id="jobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
            <!-- 执行任务 -->
            <property name="jobDetail">
                <ref bean="task"/>
            </property>
            <!-- 制定执行周期 -->
            <property name="cronExpression">
                <value>0/2 * * * * ?</value>
            </property>
        </bean>
        
        <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->
        <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            <property name="triggers">
                <list>
                     <ref bean="jobTrigger"/> 
                </list>
            </property>
        </bean>
</beans>

4.5 定时任务类

package com.codecoord.main;

public class QuartzTest {

	public void myTask() {
		System.out.println("This message is from Quartz!");
	}
}

4.6 工程总体结构

Quartz异常-Error creating bean with name 'org.springframework.scheduling.quartz.SchedulerFactoryBean「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142354.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • leetcode最长回文子串_leetcode反转链表

    leetcode最长回文子串_leetcode反转链表实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题

    2022年8月9日
    9
  • VMware 虚拟机无法连接网络解决办法

    VMware 虚拟机无法连接网络解决办法废话不多说,直接上干货1.如果你发现在VMware下运行的虚拟机无法连接网络,那下面的方法也许可以帮到你。(前提是你的物理网络是通的)第一步:在VMware界面下单击“编辑“→”虚拟网络编辑器”第二步:单击”更改设置”获取权限,如果有。则不需要单击第三步:单击左下角的”恢复默认设置“,等待完成,然后确定退出。第四步:刚刚恢复

    2022年5月19日
    111
  • Docker启动mysql服务「建议收藏」

    Docker启动mysql服务「建议收藏」1:确保自己的服务器已经安装好了docker输入dockerinfo或者dockerversion2:然后我们去dockerhub去下载自己的想要的mysql镜像找到offic的版本,点击进入3:经命令放入linux中执行。[root@iZ2zehajf73atd9gbz1qdbZredisconf]#dockerpullmysql:5.64:然后检测自己是否下载成功:dockerimages5:dockerrun–name…

    2022年10月6日
    4
  • 黑苹果 MacOS 10.15 Catalina 安装详细教程带工具资料「建议收藏」

    黑苹果 MacOS 10.15 Catalina 安装详细教程带工具资料「建议收藏」图文教程悦享地址:点击打开链接视频教程B站地址:点击打开链接​一、准备工作  一个8G以上的U盘(有的U盘标的是8G,实际只有X,实际容量小于7.5G的会失败)  MacOS镜像、TransMac(刻录工具)、DiskGenius(分区工具)、EasyUEFI(引导工区)、EFI驱动文件。    二、制作启动U盘  1、将您的U盘插入电脑,为保证成功,首先将U盘以默认值格…

    2022年4月30日
    267
  • 使用文本编辑器编写Java源代码

    使用文本编辑器编写Java源代码使用文本编辑器编写Java源代码编写Java应用程序,可以使用任何一个文本编辑器来编写程序的源代码,然后使用JDK搭配的工具进行编译和运行。在这里我将介绍一个使用简单的文本编辑器来开发一个Java应用程序的步骤。打开记事本,在记事本中输入如下代码:publicclassHelloJava{publicstaticvoidmain(String[]args){…

    2022年5月11日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号