Exemple de planificateur Struts 2 + Spring 3 + Quartz 1.8
Dans ce tutoriel, nous allons vous montrer comment intégrerStruts 2 + Spring 3 + Quartz 1.8.6.
Why NOT Quartz 2?
Actuellement, Spring 3 ne prend toujours PAS en charge les API Quartz 2, voir ceSPR-8581 bug report. Mettra à jour cet article à nouveau une fois le bogue corrigé.
Les outils utilisés
-
Printemps 3.1.5.RELEASE
-
Quartz 1.8.6
-
Jambes 2.3.4
-
Struts2-spring-plugin 2.3.4
-
Maven 3
-
Eclipse 4.2
1. Dossier de projet
Voici la structure finale des dossiers du projet.

2. Bibliothèques de dépendances
L'intégration est similaire avec ceSpring 2.5.6 + Quartz 1.6, seules les dépendances de Spring3 sont un peu désordonnées, lisez Maven pom.xml ci-dessous pour toutes les dépendances dont vous avez besoin pour développer ce tutoriel.
Consultez les commentaires XML pour comprendre pourquoi vous avez besoin de ce fichier jar.
Fichier: pom.xml
...... org.apache.struts struts2-core 2.3.4 org.quartz-scheduler quartz 1.8.6 org.springframework spring-core 3.1.2.RELEASE org.springframework spring-context 3.1.2.RELEASE org.springframework spring-context-support 3.1.2.RELEASE org.springframework spring-web 3.1.2.RELEASE org.springframework spring-tx 3.1.2.RELEASE org.apache.struts struts2-spring-plugin 2.3.4
3. Ressort 3 + Quartz
Pour intégrer à la fois Spring3 et Quartz, créez une classe étendorg.springframework.scheduling.quartz.QuartzJobBean et implémente la méthodeexecuteInternal(), tout comme vous créez un travail de planificateur dans Quartz.
Fichier: SchedulerJob.java
package com.example.quartz;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class SchedulerJob extends QuartzJobBean
{
protected void executeInternal(JobExecutionContext context)
throws JobExecutionException {
System.out.println("Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2");
}
}
File : applicationContext.xml - met tout le planificateur de Quartz et les détails de Spring enapplicationContext.xml. Voir les commentaires XML pour plus de détails.
4. Jambes de force 2 + ressort 3
Pour intégrerStruts 2 + Spring, il suffit de mettre la classe d'écouteurorg.springframework.web.context.ContextLoaderListener dans le fichierweb.xml.
Note
Pour plus de détails, veuillez lire ceStruts 2 + Spring
integration example.
Fichier: web.xml
Struts 2 Web Application struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* org.springframework.web.context.ContextLoaderListener
5. Demo
Terminé, lorsque Strut2 est démarré, il appelle Spring et exécute le travail de Quartz défini.
Jul 24, 2012 4:49:07 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] Jul 24, 2012 4:49:07 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Jul 24, 2012 4:49:07 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 3430 ms Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2 //run this every 10 seconds. Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2 Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2
Télécharger le code source
Téléchargez-le -Struts2-Spring3-Quartz-Example.zip (20 Ko).