Ich spiele mit der Quarz library herum, aber ich kann nicht den Scheduler, um den Job auszuführen. Hier ist die Einrichtung:Start Quarz Scheduler automatisch beim Start von Tomcat
Ich beginne den Scheduler beim Start (von Tomcat) mit dem folgenden Eintrag in der web.xml Datei:
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<init-param>
<param-name>config-file</param-name>
<param-value>quartz/quartz.properties</param-value>
</init-param>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
und den Inhalt der quartz.properties Datei:
org.quartz.scheduler.interruptJobsOnShutdownWithWait=true
#===================================================
# Configure the ThreadPool
#===================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
#===================================================
# Configure the Job
#===================================================
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin
org.quartz.plugin.jobInitializer.fileNames = quartz/jobs.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false
der Scheduler startet mit Tomcat zusammen, wie ich aus der Log-Ausgabe sehen:
INFO: QuartzInitializer: Scheduler has been started...
Sep 21, 2016 12:50:49 PM org.apache.catalina.core.ApplicationContext log
INFO: QuartzInitializer: Storing the Quartz Scheduler Factory in the servlet context at key: org.quartz.impl.StdSchedulerFactory.KEY
Sep 21, 2016 12:50:49 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Sep 21, 2016 12:50:49 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2373 ms
Das Problem ist der Quarz-Auftrag wird nie ausgelöst. Hier wird der Inhalt des jobs.xml:
<?xml version='1.0' encoding='utf-8'?>
<job-scheduling-data xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd" version="1.8">
<schedule>
<job>
<name>Job</name>
<group>Job</group>
<description>Testing the job</description>
<job-class>dev.dit.scheduler.TestJob</job-class>
</job>
<trigger>
<cron>
<name>Trigger</name>
<job-name>Trigger</job-name>
<job-group>TriggerGroup</job-group>
<cron-expression>0 0/5 * * * ?</cron-expression>
</cron>
</trigger>
</schedule>
und der Inhalt der TestJob.java Klasse:
public class TestJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("Job executed!");
}
}
Kann mir jemand sagen, warum der Testjob wird nie ausgeführt?
Dank