[Seasar-user:13638] Re: Teeda のDaoクラスのDIについて

小川昌幸 [E-MAIL ADDRESS DELETED]
2008年 4月 8日 (火) 16:54:09 JST


小林様
回答ありがとうございます。
いろいろ試したのですが、DaoをDIするのに
ReceptionDao receptiondao = (ReceptionDao)
SingletonS2Container.getComponent("receptionDao");
でdaoをDIする事は出来ました。

他のapp.diconに<component>を登録する。
名前をServiceに変更するは出来ませんでした。

申し訳ありませんが、もう1度質問させて下さい。(具体的に書かせていただきます)
前提条件、
 churaプロジェクトでの開発(teeda-1.0.12.sp1)

メールを定期的に送信するロジックを作成(MailService.java)

system.web.mailパッケージにMailService.javaを配置
この呼び出しはs2-quartz-0.0.2を利用してMailServiceのメソッド(doProcess)を10秒毎に呼んでいる。

quartzの設定はcustomizer.diconに定義
↓↓↓↓↓↓↓
  <component class="org.quartz.impl.StdSchedulerFactory" />
  <component class="org.seasar.quartz.SchedulerImpl">
    <initMethod name="start" />
    <initMethod name="scheduleJob">
      <arg>
        <component class="org.seasar.quartz.MethodInvokerJobDetail">
          <property name="name">"incrementCounterJob"</property>
          <property name="component">counterService</property>
          <property name="method">"doProcess"</property>
        </component>
      </arg>
      <arg>
        <component class="org.seasar.quartz.CronTrigger">
          <property name="name">"incrementCounterTrigger"</property>
          <property name="cronExpression">"0/10 * * ? * *"</property>
        </component>
      </arg>
    </initMethod>
    <destroyMethod name="shutdown" />
  </component>
  <component class="system.web.mail.MailService" name="counterService" />

MailService.javaに
public class SendinfoMail {
    private MailmagainfDao mailmagadao;
    private CustmmstDao custmmstdao;
とsystem.dao配下のdaoファイルを定義(getter,setterも定義してあります)

そこで、quartzからdoProcessメソッドが呼ばれ、各daoを使おうとすると
NullPointerでエラーとなります。

また、
app.diconに
<components>
    <include path="convention.dicon"/>
    <include path="aop.dicon"/>
    <include path="app_aop.dicon"/>
    <include path="teedaExtension.dicon"/>
    <include path="dao.dicon"/>
    <include path="dxo.dicon"/>

    <component class="system.web.mail.MailService">
    </component>

</components>

のように定義してみましたが、どうもdaoがDIされません。

どこか、他に修正箇所があるのでしょうか?

よろしくお願い致します。

08/04/08 に Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> さんは書きました:
>
> 小林 (koichik) です.
>
> Date:    Tue, 08 Apr 2008 14:48:42 +0900
> From:    Yasuo Higa <[E-MAIL ADDRESS DELETED]>
>
> To:      [E-MAIL ADDRESS DELETED]
>
> Subject: [Seasar-user:13631] Re: Teeda のDaoクラスのDIについて
>
> > 単にtetedoingをTeteServiceにリネームすればいいことです。
>
> tetedoing は Thread を持ってる (あるいは
> Thread のサブクラス?) らしいので Service に
> しない方がいいような.
>
>
>
> --
> <component name="koichik">
>     <property name="fullName">"Koichi Kobayashi"</property>
>     <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
>     <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> </component>
>
> _______________________________________________
>
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20080408/efb99efb/attachment-0001.html 


Seasar-user メーリングリストの案内