[Seasar-user:21223] Re: env.txtファイルがCT→productに変更すると、セッション情報を失う
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2011年 12月 20日 (火) 20:20:35 JST
小林 (koichik) です.
インターセプタはデフォルトでシングルトンなので,COOL では
S2 コンテナの初期化時,つまり Web コンテナ (Tomcat 等) の起動時に
インスタンス化されます.その時点ではセッションは存在しないので,
インターセプタにはDTO は設定されません.
そしてそのインスタンスがずっと使われます.
インターセプタがリクエスト毎に生成されるようにするには,
customizer.dicon で以下のように useLookupAdapter に true を
指定してください.
<component name="actionCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
<initMethod name="addAspectCustomizer">
<arg>"hogeInterceptor"</arg><!-- interceptorName -->
<arg>"do.*"</arg> <!-- pointcut -->
<arg>true</arg> <!-- useLookupAdapter -->
</initMethod>
</component>
または
<component name="actionCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
<initMethod name="addCustomizer">
<arg>
<component class="org.seasar.framework.container.customizer.AspectCustomizer">
<property name="interceptorName">"hogeInterceptor"</property>
<property name="pointcut">"do.*"</property>
<property name="useLookupAdapter">true</property>
</component>
</arg>
</initMethod>
</component>
http://s2container.seasar.org/2.4/ja/DIContainer.html#useLookupAdapter
Date: Tue, 20 Dec 2011 19:59:47 +0900
From: jingyu li <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:21222] Re: env.txtファイルがCT→productに変更すると、セッション情報を失う
> 小林 様
>
> ご回答通りにやってみましたが、やっぱりセッションDTOの値を取得できません。
>
> 今はLoginする時、Loginのユーザ情報をセッションDTOに格納して、Actionのインターセプタを使って、Actionのインターセプタ
> 中にセッションDTOを取得する。取得できない場合、ログイン画面に遷移するとの処理です。
>
>
> Hotの場合、ぜんぜん問題ないですが。Coolに変更すると、セッションDTOが空白になってしまいました。
>
>
> 何か設定など間違いでしょか?
>
> 以上、よろしくお願い致します。
>
>
>
>
> 2011年12月19日20:51 jingyu li <[E-MAIL ADDRESS DELETED]>:
>
> > 小林 様
> >
> > ご回答ありがとうございました。
> >
> > 以下のようにテストしてみます。
> >
> > ありがとうございます。
> >
> >
> > 2011年12月19日20:15 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:
> >
> > 小林 (koichik) です.
> >>
> >> セッションに保持する Dto は Serializable にしておくべきです。
> >>
> >> 取得できないのは、HOT の時に保存した情報が残っているせいでは
> >> ないでしょうか?
> >> Eclipse + Sysdeo Tomcat Plugin の場合はプロジェクト直下の
> >> work ディレクトリに sessions.ser (だったかな) とかいう
> >> ファイルがあるかもしれないので、それを削除してください。
> >> あるいは、ブラウザでクッキーを削除して新しいセッション ID が
> >> 割り振られるようにしてみてください。
> >>
> >>
> >> Date: Mon, 19 Dec 2011 19:38:23 +0900
> >> From: jingyu li <[E-MAIL ADDRESS DELETED]>
> >> Subject: [Seasar-user:21219] Re: env.txtファイルがCT→productに変更すると、セッション情報を失う
> >>
> >> > 小林 様
> >> >
> >> > お世話になっております。李です。
> >> >
> >> > ご回答ありがとうございます。
> >> >
> >> > # 具体的には HOT の場合、セッションに設定されたオブジェクトを
> >> > # バイト列にシリアライズしてセッションに保持します。
> >> > # COOL ではそういうことはしません。
> >> >
> >> > ct:
> >> > public class UserDto implements Serializable {
> >> >
> >> > private static final long serialVersionUID = 1L;
> >> >
> >> > ↓↓↓↓
> >> >
> >> > product:
> >> > public class UserDto {
> >> >
> >> >
> >> >
> >> > 以上のように変更するんですが、まだセッション情報が取得できません。
> >> > ご教授お願い致します。
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > 2011年12月19日17:59 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:
> >> >
> >> > > 小林 (koichik) です.
> >> > >
> >> > > env.txt が ct だと HOT deploy になりますが、その場合は
> >> > > セッション情報の持ち方が env.txt が product 等の場合の
> >> > > COOL deloy とは異なるため、セッションを引き継ぐことは
> >> > > できません。
> >> > > # 具体的には HOT の場合、セッションに設定されたオブジェクトを
> >> > > # バイト列にシリアライズしてセッションに保持します。
> >> > > # COOL ではそういうことはしません。
> >> > >
> >> > >
> >> > > Date: Mon, 19 Dec 2011 16:56:58 +0900
> >> > > From: jingyu li <[E-MAIL ADDRESS DELETED]>
> >> > > Subject: [Seasar-user:21211] env.txtファイルがCT→productに変更すると、セッション情報を失う
> >> > >
> >> > > > お世話になっております。リと申します。
> >> > > >
> >> > > > 開発環境で、env.txtファイルがct→productに変更すると、セッション情報を失うことになってしまいました。
> >> > > > それは何が問題なのでしょうか?
> >> > > >
> >> > > > Framework以下のようになります。
> >> > > >
> >> > > > SaStruts2.4
> >> > > > Tomcat 6
> >> > > >
> >> > > > 以上、よろしくお願い致します。
> >> > >
> >> > > --
> >> > > {
> >> > > name: "Koichi Kobayashi",
> >> > > mail: "[E-MAIL ADDRESS DELETED]",
> >> > > blog: "http://d.hatena.ne.jp/koichik/",
> >> > > twitter: "@koichik"
> >> > > }
> >> > >
> >> > > _______________________________________________
> >> > > Seasar-user mailing list
> >> > > [E-MAIL ADDRESS DELETED]
> >> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> >> > >
> >>
> >> --
> >> {
> >> name: "Koichi Kobayashi",
> >> mail: "[E-MAIL ADDRESS DELETED]",
> >> blog: "http://d.hatena.ne.jp/koichik/",
> >> twitter: "@koichik"
> >> }
> >>
> >> _______________________________________________
> >> Seasar-user mailing list
> >> [E-MAIL ADDRESS DELETED]
> >> https://ml.seasar.org/mailman/listinfo/seasar-user
> >>
> >
> >
--
{
name: "Koichi Kobayashi",
mail: "[E-MAIL ADDRESS DELETED]",
blog: "http://d.hatena.ne.jp/koichik/",
twitter: "@koichik"
}
Seasar-user メーリングリストの案内