NullPointerException beim Bereitstellen von Quartz in Spring Boot
Ich versuche, Quartz 2.2.1 mit Spring Boot zu verwenden. Ich versuche, eine geplante Aufgabe zu deklarieren, die einige Daten in eine Datei schreiben soll. Mein Job ist wie folgt definiert:
public class JobTask implements Job {
@Autowired
JobController controller;
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
try {
controller.doPrintData();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Und dann
public class StartJob {
public static void main(final String[] args) {
final SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler;
try {
scheduler = factory.getScheduler();
scheduler.start();
} catch (SchedulerException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
scheduler = factory.getScheduler();
final JobDetailImpl jobDetail = new JobDetailImpl();
jobDetail.setName("My job");
jobDetail.setJobClass(JobTask.class);
final SimpleTriggerImpl simpleTrigger = new SimpleTriggerImpl();
simpleTrigger.setStartTime(new Date(System.currentTimeMillis() + 5000));
//simpleTrigger.setStartTime(dateOf(12, 58, 00,06,05,2016));
simpleTrigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
simpleTrigger.setRepeatInterval(5000);
simpleTrigger.setName("Trigger execution every 5 secondes");
scheduler.start();
scheduler.scheduleJob(jobDetail, simpleTrigger);
System.in.read();
if (scheduler != null) {
scheduler.shutdown();
}
} catch (final SchedulerException e) {
e.printStackTrace();
} catch (final IOException e) {
e.printStackTrace();
}
}
}
PS: Ich habe meine Controllermethode 'doPrintData' getestet und es funktioniert. Aber wenn ich es in die Methode execute stecke, sehe ich das javaNullPointerException.