Извините, если при написании сообщения об ошибке я создал приложение весенней загрузки с кварцевым планировщиком. Моя проблема в том, что метод execute кварца не обращается к внешнему классу или бинам, он всегда возвращает ноль, и задание прекращается.
@Component
public class Sample1 implements ApplicationContextAware,ServletContextListener{
private static ApplicationContext CONTEXT;
private static StdSchedulerFactory factory = null;
private static Scheduler sch;
public void setApplicationContext(ApplicationContext context) throws BeansException {
CONTEXT = context;
}
@Override
public void contextInitialized(ServletContextEvent sce) {
factory = new StdSchedulerFactory();
try {
sch=factory.getScheduler();
sch.start();
} catch (SchedulerException e) {
// TODO Auto-generated catch block
}
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
contextDestroyed();
}
}
Это простой код для запуска кварцевого планировщика, и он запускается, и задание также запускается и начинает выполняться не в методе execute
@PersistJobDataAfterExecution
public class TempExecutionJob implements Job,InterruptableJob{
@Override
public void execute(JobExecutionContext context) throws
JobExecutionException {
String ss=OtherClass.val1;
System.out.println(ss);
}
}
Здесь OtherClass - это простой Java-класс, который имеет одну статическую переменную val1, значение которойустанавливается при запуске сервера, но при выполнении задания он всегда печатает ноль, а в режиме отладки при наведении указывается значение, но при выполнении оно принимает значение ноль, я не понимаю, почему это происходит, пожалуйста, если кто-то может помочь