IncompatibleClassChangeError: JobDetailBean hat die Schnittstelle org.quartz.JobDetail als Superklasse

IncompatibleClassChangeError: JobDetailBean hat die Schnittstelle org.quartz.JobDetail als übergeordnete Klasse

Beim Entwickeln vonQuartz 2.1.5 +Spring 3.1.2.RELEASE werden folgende Fehlermeldungen angezeigt:

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(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2901)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:258)
    ... 19 more

Lösung

Quarz 2-APIs wurden stark geändert, und jemand hat bereits einbug report in Spring JIRA ausgefüllt. In diesem Moment ist „Spring 3 is NOT COMPATIBLE with Quartz 2“.

Hier sind 3 Alternativen:

  1. Verwenden Sie Quartz 1.8.5, Spring 3 ist großartig mit Quartz 1.x integriert, klassisch und auch stabil.

  2. Verwenden Sie nicht dieQuartzJobBeanvon Spring für die Integration, sondern direkt die Schnittstelle / Klasse von Quartz.

  3. Zuletzt was noch? Bitte warten Sie, bis der Fehler behoben ist.