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「建议收藏」

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 华为三层交换机配置vlanif_华为三层交换机查看路由表

    华为三层交换机配置vlanif_华为三层交换机查看路由表实验拓扑实验需求1、C1与C3属于VLAN10,C2与C4属于VLAN20,在SW1上创建VLAN100做上行VLAN2、在SW1上终结所有VLAN3、在所有VLAN成员使用DHCP获取IP4、全网互通IP规划VLAN10:192.168.10.0/24VLAN20:192.168.20.0/24VLAN100:192.168.100.10/24R1G0/0/0:192…

  • 计算立方体,圆柱,圆锥体积的小程序是啥_计算圆柱体体积的程序

    计算立方体,圆柱,圆锥体积的小程序是啥_计算圆柱体体积的程序#include<iostream>#include<cmath>usingnamespacestd;voidvolume_square();//立方体体积函数声明voidvolume_cylinder();//圆柱体积函数声明voidvolume_cone();//圆锥体积函数声明intmain(){intchoice=-1;…

  • imread怎么读取图片_opencv读不到图片

    imread怎么读取图片_opencv读不到图片Matimage_source=imread(“D:\program\xie.png”)直接放入图片的绝对路径只需要把图像文件放在工程文件夹下和.cpp文件放在一起就行了,读取的时候就可以直接用名字读取,如imread(“miao.jpg”);src=imread(argv[1],1);方法是:工程——属性——配置属性——调试——命令行参数,然后设置就行了。argv[1…

    2022年10月14日
  • 实现领域驱动设计pdf_领域驱动设计实例

    实现领域驱动设计pdf_领域驱动设计实例在上一部分,分层架构的目的是为了将业务规则剥离出来在单独的领域层中进行实现。再回顾一下领域驱动设计的分层中应用层代码的实现。所有的业务规则都抽象到领域对象,比如“order.pay(amount)”

  • nginx返回400状态码

    nginx返回400状态码1.后端地址正常返回200;2.确认是url加上参数后,nginx返回400;解决方案在proxy_pass的跳转路径后新增$request_urilocation/test/{proxy_passhttp://192.168.1.11$request_uri;}

    2022年10月28日
  • 工厂模式-Php版

    工厂模式-Php版工厂模式(FactoryPattern)最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式分为三类:简单工厂模式(SimpleFactory) 工厂方法模式(FactoryMethod) 抽象工厂模式(AbstractFactory)简单工厂其实不是一个标准的的设计模式。GOF23种设计模式中只有「工厂方法模式」与「抽象工厂模式」。简单

发表回复

您的电子邮箱地址不会被公开。

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