vile83
13-10-2013, 11:32
buon giorno ragazzi,
avrei la necessità di implementare uno schedulatore in java (possibilmente un file jar runnable)
ho trovato questo esempio:
import org.quartz.impl.*;
import org.quartz.*;
import java.util.*;
/**
*
* @author Federico
*/
public class PrimoEsempio {
public static void main(String a[]) throws Exception {
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schedFact.getScheduler();
sched.start();
JobDetail jobDetail = new JobDetail("myJob",sched.DEFAULT_GROUP,SimpleJob.class);
SimpleTrigger trigger = new SimpleTrigger("myTrigger",sched.DEFAULT_GROUP,new Date(),null,0,0L);
sched.scheduleJob(jobDetail, trigger);
Thread.currentThread().sleep(4000);
sched.shutdown();
}
}
----------------------------------------------------------------
public class SimpleJob {
/** Creates a new instance of SimpleJob */
public SimpleJob() {
}
public void execute(JobExecutionContext context)
throws JobExecutionException
{
try {
// Descrizione del trigger che ha avviato questo Job
System.out.println(context.getTrigger().getDescription());
// Tempo di partenza del Job
System.out.println(context.getFireTime());
// Nome del JobDetail
System.out.println(context.getJobDetail().getFullName());
// Descrizione del JobDetail
System.out.println(context.getJobDetail().getDescription());
// Data della precedente partenza di questo Job
System.out.println(context.getPreviousFireTime());
// Data della prossima partenza per questo Job
System.out.println(context.getNextFireTime());
System.out.println("SimpleJob in esecuzione.");
// Settaggio del risultato ottenuto da questo Job
context.setResult("Sono riuscito a scrivere");
}
catch(Exception e) {
context.setResult("Errore nell'esecuzione :"+e.toString());
}
// Stampa del risultato a schermo
System.out.println(context.getResult());
}
}
-----------------------------------------------------------------------
mi da il seguente errore:
log4j:WARN No appenders could be found for logger (org.quartz.simpl.SimpleThreadPool).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.IllegalArgumentException: Job class must implement the Job interface.
at org.quartz.JobDetail.setJobClass(JobDetail.java:257)
at org.quartz.JobDetail.<init>(JobDetail.java:123)
at PrimoEsempio.main(PrimoEsempio.java:20)
ADESSO MI CHIEDO..
ma la libreria quartz funziona solo con spring o maven?
ragazzi per favore aiutatemi. Magari può tornar utile anche ad altri
grazie mille in anticipo
avrei la necessità di implementare uno schedulatore in java (possibilmente un file jar runnable)
ho trovato questo esempio:
import org.quartz.impl.*;
import org.quartz.*;
import java.util.*;
/**
*
* @author Federico
*/
public class PrimoEsempio {
public static void main(String a[]) throws Exception {
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schedFact.getScheduler();
sched.start();
JobDetail jobDetail = new JobDetail("myJob",sched.DEFAULT_GROUP,SimpleJob.class);
SimpleTrigger trigger = new SimpleTrigger("myTrigger",sched.DEFAULT_GROUP,new Date(),null,0,0L);
sched.scheduleJob(jobDetail, trigger);
Thread.currentThread().sleep(4000);
sched.shutdown();
}
}
----------------------------------------------------------------
public class SimpleJob {
/** Creates a new instance of SimpleJob */
public SimpleJob() {
}
public void execute(JobExecutionContext context)
throws JobExecutionException
{
try {
// Descrizione del trigger che ha avviato questo Job
System.out.println(context.getTrigger().getDescription());
// Tempo di partenza del Job
System.out.println(context.getFireTime());
// Nome del JobDetail
System.out.println(context.getJobDetail().getFullName());
// Descrizione del JobDetail
System.out.println(context.getJobDetail().getDescription());
// Data della precedente partenza di questo Job
System.out.println(context.getPreviousFireTime());
// Data della prossima partenza per questo Job
System.out.println(context.getNextFireTime());
System.out.println("SimpleJob in esecuzione.");
// Settaggio del risultato ottenuto da questo Job
context.setResult("Sono riuscito a scrivere");
}
catch(Exception e) {
context.setResult("Errore nell'esecuzione :"+e.toString());
}
// Stampa del risultato a schermo
System.out.println(context.getResult());
}
}
-----------------------------------------------------------------------
mi da il seguente errore:
log4j:WARN No appenders could be found for logger (org.quartz.simpl.SimpleThreadPool).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.IllegalArgumentException: Job class must implement the Job interface.
at org.quartz.JobDetail.setJobClass(JobDetail.java:257)
at org.quartz.JobDetail.<init>(JobDetail.java:123)
at PrimoEsempio.main(PrimoEsempio.java:20)
ADESSO MI CHIEDO..
ma la libreria quartz funziona solo con spring o maven?
ragazzi per favore aiutatemi. Magari può tornar utile anche ad altri
grazie mille in anticipo