Antes de começar, não deixe de ver os post anterior Post1 e Post 2.
Agora irei falar sobre o framework Quartz para JEE, então irei criar um servlet, no qual será utilizado o Tomcat 6.0, mas poderia utilizar Jboss, Weblogic. Fique alerto para cada Servidor de Aplicação será necessário os respectivos libs. Lembrando estas libs vem junto com a lib do framework. Neste poste irei mostrar passo a passo, como construir um simples exemplo usando essa framework.
Pre-requisito:
- Eclipse Indigo
- Tomcat 6
- plugins do framework Quartz, consulte o post
- plugins do email, consulte um post
Supondo que estes requisitos já esteja na sua máquina. Começando abra o eclipse e segue os passos.
Criar Projeto Novo, “Dynamic Web Project”. New->Other
Defina um nome para Projeto, Add : “ProjectQuartzWeb”, depois confere se o Tomcat foi marcado com o Servidor de Aplicação do Projeto.
Depois de criar o Projeto, vai até o pasta “src”, e cria o pacote “br.com.quartz”, no qual serão adicionados as classes do projetos.
Depois de criar os pacotes, crie os seguinte Serviços (O mesmo dos outros post). Adicione as seguintes classes abaixo:
Esse Classe “EnviarEmail”, nada mais que um serviço que envia um email.
package br.com.quartz;
import org.apache.commons.mail.SimpleEmail;
public class EnviarEmail {
public static void main(String[] args)
{
SimpleEmail email = new SimpleEmail();
try {
email.setDebug(true);
email.setHostName("smtp.gmail.com");
email.setAuthentication("seu_login", "xxxxxxxxxx");
email.setSSL(true);
email.addTo("email_destinatario");
email.setFrom("seu_email");
email.setSubject("Testando");
email.send();
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
}
}
Aqui a Classe foi criado um JOB
package br.com.quartz;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class EmailJob implements Job {
public EmailJob() {
}
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
EnviarEmail teste = new EnviarEmail();
teste.main(null);
}
}
A Classe que chama o serviço JOB, e determina o temporizador.
package br.com.quartz;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
public class ExecutarServico implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
System.out.println("THE APPLICATION STOPPED");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
try {
JobDetail job = newJob(EmailJob.class)
.withIdentity("myJob", "myGroup")
.storeDurably()
.requestRecovery()
.usingJobData("someKey", "someValue")
.build();
Trigger trigger = newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(10)
.repeatForever())
.build();
Scheduler sched = new StdSchedulerFactory().getScheduler();
sched.scheduleJob(job, trigger);
sched.start();
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Tell quartz to schedule the job using our trigger
}
}
Aqui, tem que criar um arquivo “quartz.properties”, no próprio “src”.
org.quartz.scheduler.instanceName = MeuApp org.quartz.scheduler.instanceId = AUTO org.quartz.scheduler.rmi.export = false org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount = 3 org.quartz.threadPool.threadPriority = 5 org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
Duplo clik em web.xml, no Web XML Editor, procura “Listeners” -> Add -> “br.com.quartz.ExecutarServico”.
... br.com.quartz.ExecutarServico ...
Lembre-se que tem que adicionar os jar, na lib do projeto.
Caso você não consegui abaixar todas as libs, deixe um comentário com seu email e twitte este post, que irei encaminar os jar’s.





