Exemple d'intégration de l'ordonnanceur Struts 1 + Quartz 2
Dans ce didacticiel, nous allons vous montrer comment créer un projet d'application Web simple avec Apache Struts 1.x et l'intégrer au framework de planificateur Quartz. Pendant le démarrage du projet, il démarrera le moteur Quartz et lancera la tâche de planificateur définie.
L'idée générale est assez simple, il vous suffit de créer unQuartz Struts plug-in pour le travail d'intégration.
Struts <--> Quartz Struts Plug-in <--> Quartz
Les outils utilisés :
-
Apache Struts 1.3.10
-
Quartz 2.1.5
-
Eclipse IDE
-
Maven
Note
Veuillez visiter ceQuartz 2
scheduler example pour apprendre l'utilisation de base du framework Quartz.
1. Dépendance
Obtenez les dépendances Struts et Quartz via Maven.
Fichier: pom.xml
org.apache.tomcat servlet-api 6.0.35 org.apache.struts struts-core 1.3.10 org.apache.struts struts-taglib 1.3.10 org.apache.struts struts-extras 1.3.10 org.quartz-scheduler quartz 2.1.5
2. Travail du planificateur de quartz
Créez un travail Quartz pour imprimer un message.
Fichier: SchedulerJob.java
package com.example.common.quartz; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class SchedulerJob implements Job { public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("Print Print Struts 1.3 + Quartz 2.1.5 integration example ~"); } }
3. Plug-in Struts
Créez un plug-in Struts simple et intégrez les frameworks Quartz. Dans ce plugin, lors de l'initialisation de Struts, la méthodeinit()
sera appelée et démarrera le Job du planificateur Quartz toutes les 5 secondes.
Fichier: QuartzPlugin.java
package com.example.common.plugin; import javax.servlet.ServletException; import org.apache.struts.action.ActionServlet; import org.apache.struts.action.PlugIn; import org.apache.struts.config.ModuleConfig; import org.quartz.CronScheduleBuilder; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; import com.example.common.quartz.SchedulerJob; public class QuartzPlugin implements PlugIn { @Override public void destroy() { // null } @Override public void init(ActionServlet servlet, ModuleConfig config) throws ServletException { JobDetail job = JobBuilder.newJob(SchedulerJob.class) .withIdentity("anyJobName", "group1").build(); try { Trigger trigger = TriggerBuilder .newTrigger() .withIdentity("anyTriggerName", "group1") .withSchedule( CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) .build(); Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); scheduler.scheduleJob(job, trigger); } catch (SchedulerException e) { e.printStackTrace(); } } }
4. Déclare le plugin
Incluez lesStruts plug-in ci-dessus dans le fichier de configuration Struts (struts-config.xml).
Fichier: struts-config.xml
5. Demo
Au démarrage de Struts, lancez la tâche du planificateur Quartz.
Télécharger le code source
Téléchargez-le -Struts-Quartz-2-Example.zip (24 Ko)