[Seasar-user:14433] Re: Hot Deploy 時の動作について
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2008年 5月 26日 (月) 10:17:48 JST
ひがです。
> 毎々お世話になっております。
> 大和田です。
>
> 現在SAStruts 1.0.2-rc3を利用し開発をしております。
> Hot Deploy時の動作について質問がありますので、
> ご教授ください。
>
> 1.以下のようなstaticの変数strに値を代入(setStr)後、次のリクエスト時に
> strを参照(getStr)すると値がクリアされてしまうのですが、このような現象を
> 解消する方法はありますでしょうか?
> Cool Deploy時は発生しません。
>
> public class Hoge {
> private static String str = "";
>
HOT deployでは、クラスがリクエストのたびに作成されるので、
static変数はあまり意味がありません。
app.diconにHogeを登録しておくと、
HOT deployの対象外になります。
>
> 2.HttpSessionListener#sessionDestroyed等、DIが効かない箇所で
> 以下のようにセッションで保持している情報HogeDtoを取得すると、
> 「java.lang.ClassCastException」が発生してしまいます。
> このような現象を解消する方法はありますでしょうか?
> Cool Deploy時は発生しません。
>
HogeDto hoge = SingletonS2Container.getComponent("hogeDto");
のようにコンテナから取得するようにしてください。
>
> 3.「2.」のようにDIが効かない箇所でコンポーネントを取得する方法は
> ありますでしょうか?
> 例えばsessionDestroyed内でDBを使用したいので、JdbcManagerを
> DIしたい(利用したい)のですが。。。
> またこの辺ができれば「2.」についても同様な方法で取得可能かなと
> 考えています。
>
2と同様にSingletonS2Containerが使えます。
Seasar-user メーリングリストの案内