[Seasar-user:21570] s2chronosのタスク起動について
Funa
[E-MAIL ADDRESS DELETED]
2013年 3月 20日 (水) 08:02:09 JST
こんにちは。
s2chronos <http://s2chronos.sandbox.seasar.org/ja/index.html>のインス
トー ルを試みているのですが、
良いチュートリアルのページが見つからず、質問させてください。
http://d.hatena.ne.jp/gungnir_odin/20100421/1271856739
ページを参考に、SAStruts+S2JDBC+S2Chronosの組込みを試みています。
◆以下、手順です。
1.プロジェクトをDolteng<http://d.hatena.ne.jp/keyword/Dolteng>で作成。
SAStruts+S2JDBC+Tomcatプラグイン
2.src/main/webapp/WEB-INF/libに以下のjarを追加・ビルドパス追加。
s2chronos-core-1.0.0.jar
s2chronos-extension-1.0.0.jar
3.src/main/resources/chronosCustomize.diconを追加。
<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<component
name="schedulerConfiguration"class="org.seasar.chronos.core.SchedulerConfiguration">
<property name="daemon">true</property> <property
name="autoFinish">false</property>
<property name="autoFinishTimeLimit">5000L</property>
<property name="taskScanIntervalTime">30000L</property>
<property
name="threadPoolType">@org.seasar.chronos.core.ThreadPoolType @ CACHED</property>
</component>
</components>
4.src/main/resources/creator.diconを編集。 ←追加
<component class="org.seasar.chronos.core.creator.TaskCreator"/>
<component class="org.seasar.chronos.core.creator.TriggerCreator"/>
5.src/main/resources/customizer.diconを編集。 ←追加
<component
name="taskSupportAspectCustomizer"class="org.seasar.framework.container.customizer.AspectCustomizer">
<initMethod name="addInterceptorName"> <arg>"aop.traceInterceptor"</arg>
</initMethod> <property name="pointcut">"do.*, initialize,
destroy"</property> </component> <component
name="taskCustomizer"class="org.seasar.framework.container.customizer.CustomizerChain">
<initMethod name="addCustomizer"> <arg>taskSupportAspectCustomizer</arg>
</initMethod> </component> <component
name="triggerSupportAspectCustomizer"class="org.seasar.framework.container.customizer.AspectCustomizer">
<initMethod name="addInterceptorName"> <arg>"aop.traceInterceptor"</arg>
</initMethod> <property name="pointcut">".*"</property> </component>
<component
name="triggerCustomizer"class="org.seasar.framework.container.customizer.CustomizerChain">
<initMethod name="addCustomizer">
<arg>triggerSupportAspectCustomizer</arg> </initMethod> </component>
6.src/main/resources/app.diconを編集。
<components>
<include path="convention.dicon"/>
<include path="aop.dicon"/>
<include path="j2ee.dicon"/>
<include path="s2jdbc.dicon"/>
<include path="chronos-extension.dicon"/> ←追加
<component name="actionMessagesThrowsInterceptor"
class="org.seasar.struts.interceptor.ActionMessagesThrowsInterceptor"/>
</components>
7.src/main/webapp/WEB-INF/web.xmlに以下を追加。
<servlet> <servlet-name>chronosServlet</servlet-name>
<servlet-class>org.seasar.chronos.extension.servlet.S2ChronosServlet</servlet-class>
<load-on-startup>3</load-on-startup> </servlet>
8.サンプルTaskクラスの作成。
package jp.test.s2chronos.task;
import org.seasar.chronos.core.annotation.task.Task;
import org.seasar.chronos.core.annotation.trigger.CronTrigger;
@Task
@CronTrigger(expression = "0 */1 * * * ?")
public class SampleTask {
public void doExecute() {
System.out.println("CronTriggerが1分ごとに実行さ れます。");
}
}
9.Tomcat起動。
◆この手順で実行した場合、コンソールを見ると確かにスケジューラが起動して
いるように思うのですが、
作成したサンプルのTaskが実行されません。上記8の手順で作成したクラスを
定義しないといけないのでしょうか?
下記が起動ログです。
INFO 2013-03-20 07:21:54,667 [main] Loading validation rules file from
'/WEB-INF/validator-rules.xml'
INFO 2013-03-20 07:21:54,787 [main] s2-frameworkのバージョンは2.4.43です。
INFO 2013-03-20 07:21:54,787 [main] s2-extensionのバージョンは2.4.43です。
INFO 2013-03-20 07:21:54,787 [main] s2-tigerのバージョンは2.4.43です。
DEBUG 2013-03-20 07:21:54,887 [main] 環境変数#Envにファイル(env.txt)から
値(ct)が設定されました
DEBUG 2013-03-20 07:21:54,957 [main] S2Containerを作成します。
path=hotdeploy.dicon
DEBUG 2013-03-20 07:21:54,967 [main] S2Containerを作成します。
path=convention.dicon
DEBUG 2013-03-20 07:21:55,117 [main] S2Containerを作成しました。
path=convention.dicon
DEBUG 2013-03-20 07:21:55,117 [main] S2Containerを作成します。
path=customizer.dicon
DEBUG 2013-03-20 07:21:55,127 [main] S2Containerを作成します。
path=default-customizer.dicon
DEBUG 2013-03-20 07:21:55,127 [main] S2Containerを作成します。path=std-
customizer.dicon
DEBUG 2013-03-20 07:21:55,137 [main] S2Containerを作成します。path=std-
customizer-tiger.dicon
DEBUG 2013-03-20 07:21:55,177 [main] S2Containerを作成しました。
path=std-customizer-tiger.dicon
DEBUG 2013-03-20 07:21:55,187 [main] S2Containerを作成しました。
path=std-customizer.dicon
DEBUG 2013-03-20 07:21:55,197 [main] S2Containerを作成しました。
path=default-customizer.dicon
DEBUG 2013-03-20 07:21:55,217 [main] S2Containerを作成しました。
path=customizer.dicon
DEBUG 2013-03-20 07:21:55,217 [main] S2Containerを作成します。
path=creator.dicon
DEBUG 2013-03-20 07:21:55,247 [main] S2Containerを作成しました。
path=creator.dicon
DEBUG 2013-03-20 07:21:55,247 [main] S2Containerを作成しました。
path=hotdeploy.dicon
DEBUG 2013-03-20 07:21:55,297 [main] S2Containerを作成します。path=app.dicon
DEBUG 2013-03-20 07:21:55,297 [main] S2Containerを作成します。
path=convention.dicon
DEBUG 2013-03-20 07:21:55,317 [main] S2Containerを作成しました。
path=convention.dicon
DEBUG 2013-03-20 07:21:55,317 [main] S2Containerを作成します。path=aop.dicon
DEBUG 2013-03-20 07:21:55,357 [main] S2Containerを作成しました。
path=aop.dicon
DEBUG 2013-03-20 07:21:55,357 [main] S2Containerを作成します。
path=j2ee.dicon
DEBUG 2013-03-20 07:21:55,357 [main] S2Containerを作成します。path=jta.dicon
DEBUG 2013-03-20 07:21:55,387 [main] S2Containerを作成しました。
path=jta.dicon
DEBUG 2013-03-20 07:21:55,387 [main] S2Containerを作成します。
path=jdbc.dicon
DEBUG 2013-03-20 07:21:55,417 [main] S2Containerを作成しました。
path=jdbc.dicon
DEBUG 2013-03-20 07:21:55,417 [main] S2Containerを作成しました。
path=j2ee.dicon
DEBUG 2013-03-20 07:21:55,417 [main] S2Containerを作成します。
path=s2jdbc.dicon
DEBUG 2013-03-20 07:21:55,427 [main] S2Containerを作成します。
path=s2jdbc-internal.dicon
DEBUG 2013-03-20 07:21:55,437 [main] S2Containerを作成しました。
path=s2jdbc-internal.dicon
DEBUG 2013-03-20 07:21:55,497 [main] S2Containerを作成しました。
path=s2jdbc.dicon
DEBUG 2013-03-20 07:21:55,497 [main] S2Containerを作成します。
path=chronos-extension.dicon
DEBUG 2013-03-20 07:21:55,497 [main] S2Containerを作成します。
path=chronos-core.dicon
DEBUG 2013-03-20 07:21:55,507 [main] S2Containerを作成します。
path=chronos-base.dicon
DEBUG 2013-03-20 07:21:55,518 [main] S2Containerを作成します。
path=chronosCustomize.dicon
DEBUG 2013-03-20 07:21:55,518 [main] S2Containerを作成しました。
path=chronosCustomize.dicon
DEBUG 2013-03-20 07:21:55,618 [main] S2Containerを作成しました。
path=chronos-base.dicon
DEBUG 2013-03-20 07:21:55,678 [main] S2Containerを作成しました。
path=chronos-core.dicon
DEBUG 2013-03-20 07:21:55,678 [main] S2Containerを作成しました。
path=chronos-extension.dicon
DEBUG 2013-03-20 07:21:55,678 [main] S2Containerを作成しました。
path=app.dicon
DEBUG 2013-03-20 07:21:56,108 [main] BEGIN
org.seasar.chronos.core.impl.SchedulerImpl#setSchedulerConfiguration(org.seasar.chronos.core.SchedulerConfiguration @ 1461b5b)
DEBUG 2013-03-20 07:21:56,108 [main] END
org.seasar.chronos.core.impl.SchedulerImpl#setSchedulerConfiguration(org.seasar.chronos.core.SchedulerConfiguration @ 1461b5b)
: null
INFO 2013-03-20 07:21:56,118 [main] Running on [ENV]ct, [DEPLOY MODE]Hot
Deploy
DEBUG 2013-03-20 07:21:56,128 [main] BEGIN
org.seasar.chronos.core.impl.SchedulerImpl#start()
DEBUG 2013-03-20 07:21:56,138 [main] スケジューラ を 開始します.
WARN 2013-03-20 07:21:56,138 [main] ルートパッケージ(app.task)に対応する
リソースがクラスパスから見つかりませんでした。
DEBUG 2013-03-20 07:21:56,138 [main] スケジューラ を 開始しました.
DEBUG 2013-03-20 07:21:56,138 [main] END
org.seasar.chronos.core.impl.SchedulerImpl#start() : null
ご教示頂ければ幸いです。よろしくお願い致します。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20130320/7440fc10/attachment.html>
Seasar-user メーリングリストの案内