Quartz Scheduler beispiele funktionieren nicht

JimK

Bekanntes Mitglied
Hi liebes Forum,

ich versuche mich eben mal an dem Quartz Scheduler um einen Zeit gesteuerten Prozess starten zu können. Leider markiert mir Eclipse newJob(), newTrigger(), evenMinuteDate() und _log.info im ersten Beispiel der Dokumentation als rot. Ich habe alle Bibliotheken eingepflegt.
Kann mir jemand sagen was ich falsch mache?

Java:
SchedulerFactory sf = new StdSchedulerFactory();
		Scheduler sched = sf.getScheduler();

		// define the job and tie it to our HelloJob class
		JobDetail job = newJob(TestJob.class)
		    .withIdentity("job1", "group1")
		    .build();
		// compute a time that is on the next round minute
		Date runTime = evenMinuteDate(new Date());

		// Trigger the job to run on the next round minute
		Trigger trigger = newTrigger()
		    .withIdentity("trigger1", "group1")
		    .startAt(runTime)
		    .build();
		// Tell quartz to schedule the job using our trigger
		sched.scheduleJob(job, trigger);
		sched.start();
		Thread.sleep(90L * 1000L);
		sched.shutdown(true);

Java:
public void execute(JobExecutionContext context) throws JobExecutionException {
		    // Say Hello to the World and display the date/time
		    _log.info("Hello World! - " + new Date());
		

	}

LG
JimK
 

turtle

Top Contributor
Leider markiert mir Eclipse newJob(), newTrigger(), evenMinuteDate() und _log.info im ersten Beispiel der Dokumentation als rot. Ich habe alle Bibliotheken eingepflegt

Wie hast Du das gemacht?

Nach der Beschreibung vermute ich, dass die Jars NICHT im Buildpath liegen und somit nicht bekannt sind.
 

Ariol

Top Contributor
Es sieht so aus als würden die statische Imports verwenden.

Füge also mal das hier in deine imports ein:
Java:
import static org.quartz.JobBuilder.*;

Eventuell musst du das hier ersetzen:
Java:
import org.quartz.JobBuilder.*;
 

turtle

Top Contributor
Das stimmt. Die Beispiele von Quartz machen folgende import Anweisungen, entnommen aus Beispiel 3. Läuft bei mir einwandfrei.

Java:
import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
[code=Java]
 

JimK

Bekanntes Mitglied
Hey danke für eure schnelle Antwort.
Also ich habe die Bibliotheken über Properties --> Java Build Path --> Add External JATs eingebunden. So wurde es mir beigebracht. :D War das falsch?
Mit euren imports funktioniert es... fast. Leider ist noch die _log.info() rot markiert. Habe jetzt einfach mal ein System.out.println() daraus gemacht. Aber irgendwie funktioniert es noch nicht. :(
Werde mich mal weiter daran probieren. Danke für eure Hilfe.
 

turtle

Top Contributor
Nein, das stimmt schon so.

Quartz setzt die Simple Logging Facade for Java (SLF4J) ein, mit der Du unterschiedliche Logging-Frameworks anbinden kannst.

Ich gehe davon aus, das Du die abhängigen Jars NICHT im Build-Path hast. Diese findest Du im Quartz-Ordner unter lib und da sind folgende Jars enthalten: c3p0-0.9.1.1.jar,jta-1.1.jar,log4j-1.2.14.jar,slf4j-api-1.6.1.jar,slf4j-log4j12-1.6.1.jar
Diese müssen auch im Buildpath sein.
 

Ähnliche Java Themen

Neue Themen


Oben