Struts 2 + Spring 3 + Quartz 1.8スケジューラーの例
このチュートリアルでは、Struts 2 + Spring 3 + Quartz 1.8.6を統合する方法を示します。
Why NOT Quartz 2?
現在、Spring3はQuartz2 APIをまだサポートしていません。このSPR-8581 bug reportを参照してください。 修正されたバグがリリースされたら、この記事を再度更新します。
使用したツール
-
Spring 3.1.5.RELEASE
-
クォーツ1.8.6
-
Struts 2.3.4
-
Struts2-spring-plugin 2.3.4
-
メーベン3
-
Eclipse 4.2
1. プロジェクトフォルダ
最終的なプロジェクトフォルダー構造は次のとおりです。
2. 依存ライブラリ
統合はこのSpring 2.5.6 + Quartz 1.6と似ていますが、Spring3の依存関係が少し厄介です。このチュートリアルを開発するために必要なすべての依存関係については、以下のMavenpom.xmlをお読みください。
そのjarが必要な理由を理解するには、XMLコメントを参照してください。
ファイル: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. 春3 +クォーツ
Spring3とQuartzの両方を統合するには、Quartzでスケジューラジョブを作成するのと同じように、org.springframework.scheduling.quartz.QuartzJobBean
を拡張し、executeInternal()
メソッドを実装するクラスを作成します。
ファイル: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 – Quartzのスケジューラ全体とSpringの詳細をapplicationContext.xml
に配置します。 詳細については、XMLコメントを参照してください。
4. Struts 2 + Spring 3
Struts 2 + Springを統合するには、org.springframework.web.context.ContextLoaderListener
リスナークラスをweb.xml
ファイルに配置するだけです。
Note
詳細については、このStruts 2 + Spring
integration exampleをお読みください。
ファイル:web.xml
Struts 2 Web Application struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* org.springframework.web.context.ContextLoaderListener
5. Demo
Strut2が開始されると、Springが呼び出され、定義されたQuartzのジョブが実行されます。
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
ソースコードをダウンロード
ダウンロード–Struts2-Spring3-Quartz-Example.zip(20KB)。