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