[Seasar-user:9028] Re: CoolDeploy 時に登録されないコンポーネント
松山 大樹
[E-MAIL ADDRESS DELETED]
2007年 7月 9日 (月) 15:40:58 JST
松山です。
なるほど、そういうことでしたか。
確かに、アプリケーション起動時のログを見ると、ConfirmMaintenanceTrainingPage の
登録が出現しています。
共通の抽象クラスを継承するように、修正しようと思います。
お忙しいところ、ありがとうございました。
助かりました。
>ConfirmMaintenanceTrainingPage というクラスが
>MaintenanceTrainingPage を継承しているのですね.
>
>COOL deploy の場合,名前の順番で先に
>ConfirmMaintenanceTrainingPage が自動登録される
>場合が多く,MaintenanceTrainingPage を見つけた
>時点では既にコンテナに MaintenanceTrainingPage を
>キーとするクラスが存在する (S2 では登録した
>コンポーネントのクラスの他,そのスーパークラスや
>実装するインタフェースもキーとして登録されます) ため,
>既に登録済みと判断されてしまいます.
>
>これは,もし SMART deploy を使わず明示的に
>ConfirmMaintenanceTrainingPage と
>MaintenanceTrainingPage を登録して,
>MaintenanceTrainingPage を取得しようとすると,
>TooManyRegistration〜 となるケースです.
>
>HOT deploy の場合は,必要になるクラスしか登録
>されないため,MaintenanceTrainingPage が要求された
>場合に ConfirmMaintenanceTrainingPage が登録されて
>いないのでうまく動いてしまいます.
>本来 TooMany〜 になるケースが HOT では
>ならないというのは以前から把握していたことなのですが,
>コンポーネントが要求されてから自動登録するという
>メカニズムのため,COOL と同じ振る舞いにするのは
>困難です.
>
>なお,WARM では MaintenanceTrainingPage が最初に
>要求されるとその時点ではうまく動きますが,
>ConfirmMaintenanceTrainingPage が要求された後に
>MaintenanceTrainingPage が要求されると今度は
>TooMany〜 になってしまいます.
>
>
>回避策としては,ConfirmMaintenanceTrainingPage が
>直接 MaintenanceTrainingPage を継承するのを避けて,
>それぞれが共通の抽象クラスを継承するようにしてください.
>
>
>--
><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
--
::: 株式会社WOWOWコミュニケーションズ http://www.wowcom.co.jp/
::: ITシステムインテグレートサービスDept.
::: Webソリューション開発Unit.
::: 松山 大樹 - [E-MAIL ADDRESS DELETED]
::: tel 045-345-0429 fax 020-4622-7043
Seasar-user メーリングリストの案内