Developing Quartz 2.1.5 + Spring 3.1.2.RELEASE, hits following error messages :

Caused by: java.lang.IncompatibleClassChangeError: 
	class org.springframework.scheduling.quartz.JobDetailBean has interface org.quartz.JobDetail as super class
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(
	at java.lang.ClassLoader.defineClass(
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(
	at org.apache.catalina.loader.WebappClassLoader.findClass(
	at org.apache.catalina.loader.WebappClassLoader.loadClass(
	at org.apache.catalina.loader.WebappClassLoader.loadClass(
	at org.springframework.util.ClassUtils.forName(
	... 19 more


Quartz 2 APIs are changed a lot, and someone already filled a bug report on Spring JIRA. At this moment, “Spring 3 is NOT COMPATIBLE with Quartz 2“.

Here are 3 alternatives :

  1. Use Quartz 1.8.5, Spring 3 is integrated great with Quartz 1.x, classic and stable also.
  2. Do not use Spring’s QuartzJobBean for integration, uses Quartz’s interface / class directly.
  3. Last, what else? Please wait for the bug fixed.