Struts 2 Spring 3 Quartz 1.8 Scheduler-Beispiel

Streben 2 + Feder 3 + Quarz 1.8 Scheduler Beispiel

In diesem Tutorial zeigen wir Ihnen, wie SieStruts 2 + Spring 3 + Quartz 1.8.6 integrieren.

Why NOT Quartz 2?
Derzeit unterstützt Spring 3 noch KEINE Quarz 2-APIs (sieheSPR-8581 bug report). Aktualisiert diesen Artikel erneut, sobald der Fehler behoben ist.

Benutztes Werkzeug

  1. Frühling 3.1.5.FREIGABE

  2. Quarz 1.8.6

  3. Streben 2.3.4

  4. Struts2-Feder-Plugin 2.3.4

  5. Maven 3

  6. Eclipse 4.2

1. Projektordner

Hier ist die endgültige Struktur des Projektordners.

image

2. Abhängigkeitsbibliotheken

Die Integration ist mit diesemSpring 2.5.6 + Quartz 1.6 ähnlich, nur die Abhängigkeiten von Spring3 sind etwas chaotisch. Lesen Sie unten die Maven pom.xml für alle Abhängigkeiten, die Sie zur Entwicklung dieses Tutorials benötigen.

In den XML-Kommentaren erfahren Sie, warum Sie dieses Glas benötigen.

Datei: 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. Feder 3 + Quarz

Um sowohl Spring3 als auch Quartz zu integrieren, erweitert eine Klasseorg.springframework.scheduling.quartz.QuartzJobBean und implementiert die MethodeexecuteInternal(), genau wie Sie einen Scheduler-Job in Quartz erstellen.

Datei: 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 - Setzt den gesamten Quartz-Scheduler und die Spring-Details inapplicationContext.xml. Einzelheiten finden Sie in den XML-Kommentaren.



  
  
    
  

  
  
    
    
  

  
  
    
        
            
        
    

    
        
            
        
    
  

4. Streben 2 + Feder 3

UmStruts 2 + Spring zu integrieren, fügen Sie einfach die Listener-Klasseorg.springframework.web.context.ContextLoaderListener in die Dateiweb.xml ein.

Note
Für Details lesen Sie bitte dieseStruts 2 + Spring integration example.

Datei: web.xml




    Struts 2 Web Application

    
      struts2
      
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
      
    

    
      struts2
      /*
    

    
      
        org.springframework.web.context.ContextLoaderListener
      
    

5. Demo

Wenn Strut2 gestartet wird, ruft es Spring auf und führt den definierten Quarzjob aus.

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

Quellcode herunterladen

Laden Sie es herunter -Struts2-Spring3-Quartz-Example.zip (20 KB).