quartz报错java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.ord

出现Caused by: java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set;
的错误。是因为我们使用的commons-collections.jar版本太低导致的要使用3.*的才行。
如果你用的MyEclipse,如果导入了commons-collections.jar 3.*的包还不行的话,而且没有找到其他的包的话很可能是MyEclipse自带的Liberary中包括了版本低的包而你导入了这个lib。
比如MyEclipse的Hibernate的Lib中包括commons-collections.jar但是版本是2.*。
Window->Preferences->Myeclipse->Project Capabilities->Hibernate
从lib中删除此包即可。(注:此时有三个选项卡hibernate2,hibernate3,hibernate3.1。),用的哪个版本选哪个。下面有commons-collections.jar包。把它删了。如果还不行。看看你的tomcat发布工程的classpath下是否有commons-collections.jar包。我当时就出现类似情况。浪费了我一个多小时。还好搞定了。


<!-- 定时任务配置开始 -->
	<!-- 定义调用对象和调用对象的方法 -->
	<bean id="accountTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 调用类 -->
		<property name="targetObject">
			<ref bean="accountCheckJob"/>
		</property>
		<!-- 调用类中的执行方法 -->
		<property name="targetMethod">
			<value>work</value>
		</property>
	</bean>
	
	<!-- 定时触发时间 -->
	<bean id="accountTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">  
        	<ref bean="accountTask"/>  
        </property>
        <!-- cron表达式 -->
        <property name="cronExpression">
        	<value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value> 
        </property>
	</bean>

你可能感兴趣的:(java,apache,Hibernate,MyEclipse,quartz)