[Seasar-user:18508] Re: Dolteng0.38.0のS2BlazeDSでエラー
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 9月 20日 (日) 05:30:00 JST
小林 (koichik) です.
Date: Sat, 19 Sep 2009 10:38:21 +0900
From: shares <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:18506] Dolteng0.38.0のS2BlazeDSでエラー
> Doltengで作成した環境に、Flex側からRemoteObjectのサービスにアクセスすると、
> 下記のようなエラーが表示されます。
これだけだと何が起きてるのか分かりません.
Seasar2.4.35 以降では HotdeployFilter で
HttpServletRequest および HttpSession を
ラップしているのですが,
> java.lang.IllegalStateException: setAttribute: セッションは既に無効化されています
> at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1289)
> at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1254)
> at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:130)
> at org.seasar.framework.container.hotdeploy.HotdeployHttpSession.flush(HotdeployHttpSession.java:94)
> at org.seasar.framework.container.hotdeploy.HotdeployFilter.doHotdeployFilter(HotdeployFilter.java:104)
> at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67)
このスタックフレームからは,ラップしている
(Seasar2 の) HttpSession を通さず,本来の
HttpSession の invalidate() が呼び出されて
いるように見えます.
そのため,Seasar2 からは有効な HttpSession だと
判断しているのに,実際には無効になっているのだと
思われます.
まずは invalidate() を呼び出している場所を
特定して,そこで Seasar2 がラップしている
HttpSession を使うようにすれば解決すると
思いますが,例えば SessionListener など,
Seasar2 が介入できない場所で invalidate()
している場合は対処が難しいかもしれません.
--
<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 メーリングリストの案内