请教,spring3.2+quartz2.1.6报如下错误如何解决?

发布于 2021-11-29 11:02:16 字数 1732 浏览 798 评论 10

class org.springframework.scheduling.quartz.JobDetailBean has interface org.quartz.JobDetail as super class


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>

	<bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="applicationContextSchedulerContextKey" value="applicationContextKey" />
		<property name="configLocation" value="classpath:quartz.properties" />
	</bean>

	<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
		<property name="jobClass" value="com.example.service.MyQuartzJobBean" />
		<property name="jobDataAsMap">
			<map>
				<entry key="simpleService">
					<ref bean="simpleService" />
				</entry>
			</map>
		</property>
	</bean>

</beans>

public class MyQuartzJobBean extends QuartzJobBean {

	private SimpleService simpleService;
	
	@Autowired
	public void setSimpleService(SimpleService simpleService) {
		this.simpleService = simpleService;
	}

	@Override
	protected void executeInternal(JobExecutionContext jobexecutioncontext) throws JobExecutionException {
		Trigger trigger = jobexecutioncontext.getTrigger();
		String triggerName = trigger.getKey().getName();		
		simpleService.testMethod(triggerName);
	}

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

终止放荡 2021-11-29 15:07:54

Spring官网有说明其已支持Quartz 2.x,但是需要将Spring升级到3.1以上。由于Quartz 2.x修改了部分API,所以需要修改一下Quartz的配置。大体来说很简单,如下:

1)升级Spring的jar包

2)升级Quartz的jar包

3)修改配置

  • 将CronTriggerBean修改为CronTriggerFactoryBean
  • 将JobDetailBean修改为JobDetailFactoryBean
甜柠檬 2021-11-29 15:07:54

引用来自“零度C”的评论

Spring官网有说明其已支持Quartz 2.x,但是需要将Spring升级到3.1以上。由于Quartz 2.x修改了部分API,所以需要修改一下Quartz的配置。大体来说很简单,如下:

1)升级Spring的jar包

2)升级Quartz的jar包

3)修改配置

  • 将CronTriggerBean修改为CronTriggerFactoryBean
  • 将JobDetailBean修改为JobDetailFactoryBean
终遇你 2021-11-29 15:07:50

兄弟,你点进去这个类org.springframework.scheduling.quartz.JobDetailBean看看他的提示啊!!

NOTE: This convenience subclass does not work against Quartz 2.0.</b>
 Use Quartz 2.0's native <code>JobDetailImpl</code> class or the new Quartz 2.0 builder API instead. Alternatively, switch to Spring's 

{@link JobDetailFactoryBean}

 which largely is a drop-in replacement for this class and its properties and

 consistently works against Quartz 1.x as well as Quartz 2.0/2.1.

Quartz 2.0/2.1使用的是org.springframework.scheduling.quartz.JobDetailFactoryBean

别再吹冷风 2021-11-29 15:07:47

spring早已经支持quartz2.x,请看这里
http://shellblog.sinaapp.com/?p=395

怎言笑 2021-11-29 15:07:40

介个我刚刚踩过这个坑。。。

直接用Spring 的 Task就行,不用加任何Jar包,支持注解

可以参考:http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/scheduling.html

或者直接搜索

复古式 2021-11-29 15:06:34

已经支持

浅沫记忆 2021-11-29 14:41:31

木有吧

看透却不说透 2021-11-29 14:29:37

与Spring整合必须请使用Quartz1.8.x及以下版本

陌若浮生 2021-11-29 12:43:09

与Spring整合必须请使用Quartz1.8.x及以下版本

睫毛上残留的泪 2021-11-29 12:18:06

Spring3.1.0 能匹配quartz2.2.1吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文