Я выполняю запланированное задание в веб-приложении, которое иногда (не может воспроизвести его) приводит к следующему исключению:
[WebappClassLoader] Недопустимый доступ: этот экземпляр веб-приложения уже остановлен.Не удалось загрузить org.quartz.StatefulJob.Возможная следующая трассировка стека вызвана ошибкой, генерируемой для целей отладки, а также для попытки завершить поток, который вызвал несанкционированный доступ, и не оказывает никакого функционального влияния.java.lang.IllegalStateException в org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1244) в org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.javaClan.og): 120loadClassInternal (ClassLoader.java:319) в java.lang.Class.forName0 (собственный метод) в java.lang.Class.forName (Class.java:169) в org.quartz.JobDetail.class $ (JobDetail.java:279) в org.quartz.JobDetail.isStateful (JobDetail.java:425) в org.quartz.simpl.RAMJobStore.triggerFired (RAMJobStore.java:1313) в org.quartz.core.QuartzSchedulerThread.run (QuartzScheduler2)13: 41: 00,083 ОШИБКА [STDERR] Исключение в потоке "DefaultQuartzScheduler_QuartzSchedulerThread" 13: 41: 00,083 ОШИБКА [STDERR] java.lang.NoClassDefFoundError: org.quartz.StatefulJob 13: 41: 00RobRoG.class $ (JobDetail.java:279) 13: 41: 00,083 ОШИБКА [STDERR] в org.quartz.JobDetail.isStateful (JobDetail.java:425) 13: 41: 00,083 ОШИБКА [STDERR] в org.quartz.simpl.RAMJobStore.triggerFired (RAMJobStore.java:1313) 13: 41: 00,083 ОШИБКА [STDERR] в org.quartz.core.QuartzSchedulerThread.run (QuartzSchedulerThread.java:342)
Также имеется NoClassFound.Это говорит о том, что org.quartz.StatefulJob не найден.Вот как запланировано задание:
Scheduler sched = StdSchedulerFactory.getDefaultScheduler();
if (!sched.isStarted()){
sched.start();
}
String konf = MyConfigClass.getRow(25).getKonfiguration();
Calendar cal = Calendar.getInstance();
cal.setTime(MyParser.stf.parse(konf));
String expression = "0 " + cal.get(Calendar.MINUTE) + " " + cal.get(Calendar.HOUR_OF_DAY) + " ? * MON-FRI";
CronTrigger ct = new CronTrigger(triggerName, group, jobName, group, expression);
if (sched.getTrigger(triggerName, Scheduler.DEFAULT_GROUP) != null) {
sched.rescheduleJob(triggerName, group, ct);
} else {
JobDetail jd = new JobDetail(jobName, group, MyJob.class);
sched.scheduleJob(jd, ct);
}
Я не знаю, в чем может быть проблема.Сначала я думал, что сеанс умирает до выполнения задания, но я попробовал, и это не так.Интересно то, что после этого исключения задание запускается снова без проблем.
У вас есть идеи?