[Seasar-user:19046] Re: Cooldeploy時のカスタムValidatorの挙動について

萩原 幸央 [E-MAIL ADDRESS DELETED]
2009年 12月 20日 (日) 14:32:15 JST


お世話になっております、萩原です。

> 前の画面の状態が残っているということは,
> Validator が本来の prototype ではなく,
> session スコープになっているのかもしれません.
>
> COOL deploy で
>
> http://localhost:8080/<context>/teedaServlet?command=list
>
> にアクセスして,Validator のコンポーネント定義を
> 確認してみてください.

確認してみたところ singletonになっていました。
diconでの自動登録設定に問題があったようです。
以下のように修正したところ上手くいきました。

** 修正前 **
    <component
         class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
        <property name="autoNaming">
          <component 
class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
        </property>
        <initMethod name="addClassPattern">
          <arg>"aaa.bbb.ccc"</arg>
          <arg>".*Validator"</arg>
        </initMethod>
    </component>

** 修正後 **
    <component
         class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
        <property name="instanceDef">
          @[E-MAIL ADDRESS DELETED]
        </property>
        <initMethod name="addClassPattern">
          <arg>"aaa.bbb.ccc"</arg>
          <arg>".*Validator"</arg>
        </initMethod>
    </component>


デフォルトの設定がsingletonになっているため、cooldeploy時には
明示的にインスタンス生成のタイミングを指定する必要があると言う
ことでしょうか?

Hotdeploy時にもコンポーネント定義を確認すると同様にsingleton
となっているようですが、Hotdeploy時には上手く動くのはなぜでしょうか?

初歩的な質問なのかもしれませんが、宜しくお願い致します。


--------------------------------------------------------------------------------


> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 



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