我有一个Quartz工作完美的项目,现在,我正在做另一个项目,但它让我得到了一个我自己没有解决的错误。
跟踪是。
*GRAVE: Excepcion enviando evento inicializado de contexto a instancia de escuchador de clase com.is.pr.timer.QuartzSchedulerListener
java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoade
r.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1
148)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1
643)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1
521)
at com.is.pr.timer.QuartzSchedulerListener.contextInitialized(QuartzSchedulerListe
ner.java:25)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:470
1)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5204)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5199)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)*
它得到错误的一行。
public class QuartzSchedulerListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
//
}
public void contextInitialized(ServletContextEvent arg0) {
JobDetail job = JobBuilder.newJob(CheckStates.class)
.withIdentity("anyJobName", "group1").build();
try {
Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("anyTriggerName", "group1")
.withSchedule(
CronScheduleBuilder.cronSchedule("0/70 * * * * ?"))
.build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
e.printStackTrace();
}
在我的web.xml中,你也添加了:
<listener>
<listener-class>
com.is.pr.timer.QuartzSchedulerListener
</listener-class>
</listener>
我当然包含了这些库:
c3p0-0.9.1.1.jar
log4j-1.2.16.jar
quartz-2.2.3.jar
quartz-all-2.1.5.jar
quartz-jobs-2.2.3.jar
slf4j-api-1.7.7-jar
slf4j-log4j12-1.7.7.jar
但没有任何作用。我从其他正在运行的项目中复制了相同内容,我错过了什么?
非常感谢。
答案 0 :(得分:-1)
解决。这是因为我在lib文件夹中有一个旧库:我删除它并且它可以工作。