JSF 2 + Quartz 2の例
このチュートリアルでは、QuartzライブラリのQuartzInitializerListenerリスナークラスを介して、JSFWebアプリケーション中にQuartzジョブを実行する方法を示します。 このソリューションはJSF 2で機能するだけでなく、この概念はほとんどすべての標準Java Webアプリケーションに適用できます。
使用ツール:
-
JSF 2.1.11
-
クォーツ2.1.5
-
メーベン3
-
Eclipse 4.2
-
Tomcat 7
以前のJSF 2.0 hello
world exampleは再利用され、QuartzInitializerListenerリスナークラスを介してQuartzジョブをサポートするように拡張されます。
P.S This tutorial is only focus on Quartz integration, for JSF, please read above JSF hello world example.
1. プロジェクトフォルダ
最終的なプロジェクトディレクトリ構造を確認します。

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. Quartzを統合する
これが統合が行われた場所です。 web.xmlファイルでリスナークラスとしてorg.quartz.ee.servlet.QuartzInitializerListenerを宣言しました。
ファイル: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 kb)