[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 メーリングリストの案内