Exemple de planificateur Struts 2 Spring 3 Quartz 1.8

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

  1. Printemps 3.1.5.RELEASE

  2. Quartz 1.8.6

  3. Jambes 2.3.4

  4. Struts2-spring-plugin 2.3.4

  5. Maven 3

  6. Eclipse 4.2

1. Dossier de projet

Voici la structure finale des dossiers du projet.

image

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).