Пример JSF 2 Quartz 2

Пример JSF 2 + Quartz 2

В этом руководстве мы покажем вам, как запустить задание Quartz во время веб-приложения JSF через класс слушателяQuartzInitializerListener в библиотеке Quartz. Это решение не только работает с JSF 2, концепция применима практически ко всем стандартным веб-приложениям Java.

Используемые инструменты:

  1. JSF 2.1.11

  2. Кварц 2.1.5

  3. Maven 3

  4. Затмение 4.2

  5. Tomcat 7

ПредыдущийJSF 2.0 hello world example используется повторно, и мы улучшим его для поддержки задания Quartz через класс слушателяQuartzInitializerListener.

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

1. Папка проекта

Просмотрите окончательную структуру каталогов проекта.

project directory structure

2. зависимости

Для развертывания на Tomcat вам потребуется много зависимостей JSF. Прочтите комментарии XML для подробностей.

Файл: 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. Этот класс планируется запустить и запустить позже.

Файл: 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. Конфигурация кварца

Создайтеquartz.properties иquartz-config.xml, поместите их в «папку» ресурсов (структура Maven), для проекта, отличного от Maven, убедитесь, что его можно найти в пути к классам проекта.

File : quartz.properties - Настроить экземпляр Quartz и прочитать настройки изquartz-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 - настроить триггер для запускаcom.example.scheduler.SchedulerJob





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

        
            
                dummyTriggerName
                AJob
                AGroup
                
                0/5 * * * * ?
            
        
    

Note
Для подробного объяснения, пожалуйста, прочтите эту статьюQuartz configuration reference.

5. Интегрировать кварц

Здесь произошла интеграция. Объявленorg.quartz.ee.servlet.QuartzInitializerListener как класс слушателя в файлеweb.xml.

Файл: web.xml




    
        
            org.quartz.ee.servlet.QuartzInitializerListener
        
    

6. Demo

Во время запуска проекта Quartz запускается и запускает запланированное задание каждые 5 секунд.

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

Скачать исходный код

Скачать -JSF-Quartz-Example.zip (25 кб)