Beispiel für JSF 2 Quarz 2

Beispiel JSF 2 + Quarz 2

In diesem Tutorial zeigen wir Ihnen, wie Sie einen Quarzjob während einer JSF-Webanwendung über die Listener-KlasseQuartzInitializerListenerin der Quarzbibliothek ausführen. Diese Lösung funktioniert nicht nur mit JSF 2, das Konzept ist auch auf fast alle Standard-Java-Webanwendungen anwendbar.

Benutztes Werkzeug :

  1. JSF 2.1.11

  2. Quarz 2.1.5

  3. Maven 3

  4. Eclipse 4.2

  5. Tomcat 7

Das vorherigeJSF 2.0 hello world example wird wiederverwendet, und wir werden es verbessern, um den Quarzjob über die Listener-Klasse vonQuartzInitializerListenerzu unterstützen.

P.S This tutorial is only focus on Quartz integration, for JSF, please read above JSF hello world example.

1. Projektordner

Überprüfen Sie die endgültige Projektverzeichnisstruktur.

project directory structure

2. Abhängigkeiten

Für die Bereitstellung auf Tomcat benötigen Sie viele JSF-Abhängigkeiten. Lesen Sie die XML-Kommentare für Details.

Datei: pom.xml


...
                
        
            com.sun.faces
            jsf-api
            2.1.11
        
        
            com.sun.faces
            jsf-impl
            2.1.11
        

        
            javax.servlet
            jstl
            1.2
        

        
            javax.servlet
            servlet-api
            2.5
        

        
            javax.servlet.jsp
            jsp-api
            2.1
        

                
        
            com.sun.el
            el-ri
            1.0
        

        
        
            org.quartz-scheduler
            quartz
            2.1.5
        

        
        
            javax.transaction
            jta
            1.1
        
...

3. Quartz Job

Erstellen Sie eine Quarz-Jobklasse. Diese Klasse wird später geplant und ausgeführt.

Datei: SchedulerJob.java

package com.example.scheduler;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class SchedulerJob implements Job {

    @Override
    public void execute(JobExecutionContext context)
        throws JobExecutionException {

        System.out.println("JSF 2 + Quartz 2 example");

    }

}

4. Quarzkonfiguration

Erstellen Siequartz.properties undquartz-config.xml, legen Sie sie im Ressourcenordner (Maven-Struktur) ab. Stellen Sie für Nicht-Maven-Projekte sicher, dass sie sich im Projektklassenpfad befinden.

File : quartz.properties - Konfigurieren Sie die Quarzinstanz und lesen Sie die Einstellungen vonquartz-config.xml

org.quartz.scheduler.instanceName = MyScheduler
org.quartz.threadPool.threadCount = 3
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
org.quartz.plugin.jobInitializer.class =org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin
org.quartz.plugin.jobInitializer.fileNames = quartz-config.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound = true

File : quartz-config.xml - Konfigurieren Sie den Trigger so, dasscom.example.scheduler.SchedulerJob ausgeführt wird




    
        
            AJob
            AGroup
            Print a welcome message
            com.example.scheduler.SchedulerJob
        

        
            
                dummyTriggerName
                AJob
                AGroup
                
                0/5 * * * * ?
            
        
    

Note
Ausführliche Erläuterungen finden Sie in diesem Artikel zuQuartz configuration reference.

5. Quarz integrieren

Hier fand die Integration statt. Deklariertorg.quartz.ee.servlet.QuartzInitializerListener als Listener-Klasse inweb.xml Datei.

Datei: web.xml



    
        
            org.quartz.ee.servlet.QuartzInitializerListener
        
    

6. Demo

Während des Projektstarts wird Quartz gestartet und der geplante Job alle 5 Sekunden ausgeführt.

Jul 26, 2012 3:32:18 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jul 26, 2012 3:32:18 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jul 26, 2012 3:32:18 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3591 ms
JSF 2 + Quartz 2 example
JSF 2 + Quartz 2 example
JSF 2 + Quartz 2 example

Quellcode herunterladen

Laden Sie es herunter -JSF-Quartz-Example.zip (25 kb)