[Seasar-user:19047] Re: Dolteng0.38.0のS2BlazeDSでエラー
jun funakura
[E-MAIL ADDRESS DELETED]
2009年 12月 20日 (日) 15:16:12 JST
ふなくら(nod)です
だいぶ時間が経ってしまっていますが、
S2BlazeDSを修正したSNAPSHOTを以下にアップいたしました。
http://maven.seasar.org/maven2-snapshot/org/seasar/blazeds/s2blazeds/1.0.1-SNAPSHOT/s2blazeds-1.0.1-20091208.162339-1.jar
Doltengで作ったS2BlazeDSプロジェクトでHotDeploy環境でエラーが再現できている状態で
上記のjarに入れ替えた後、
sample.mxmlに似たような一覧取得をするサービスを呼び出しても動作するところまでは
確認しております。
余裕がありましたら動作確認をしていただけますと幸いです。
BlazeDS3.2からSessionチェックをするように変更されていたのですが、
その影響で分散環境やHotDeploy環境で問題がでるようになってしまったようです。
Doltengリリース時のテスト時に手薄になっていた部分でした。
ご指摘ありがとうございました。
--
ふなくら
2009年10月1日16:27 share kara <[E-MAIL ADDRESS DELETED]>:
> 唐立です。
>
>> ともあれ (JW),HttpSession が invalidate される
>> ところを特定してください.
>> 例えば HttpSessionListener を登録して
>> sessionDestroyed() でスタックトレースを出力するなど.
>
> Listenerを作成して、sessionDestroyed()でブレークポイントを設定して、
> スタックトレースをとってみました。
>
> すこし追ってみたところ、BaseHTTPEndpoint.setupFlexClient()のところで
> Duplicate Sessionと判定されて、セッションが無効化されているようです。
>
> もしかすると、Seasar2.4.35からの変更で、BlaseDS側の潜在的な不具合が出てきてしまったとか、そういう話しなのでしょうか。。。
>
> ◇スタックトレース
> Daemon Thread [http-8080-1] (Suspended (breakpoint at line 14 in
> SampleSessionListener))
> SampleSessionListener.sessionDestroyed(HttpSessionEvent) 行: 14
> StandardSession.expire(boolean) 行: 702
> StandardSession.expire() 行: 660
> StandardSession.invalidate() 行: 1113
> StandardSessionFacade.invalidate() 行: 150
> HotdeployHttpSession.invalidate() 行: 177
> HttpFlexSession.invalidate(boolean) 行: 310
> HttpFlexSession.invalidate() 行: 291
> S2AMFEndpoint(BaseHTTPEndpoint).setupFlexClient(String) 行: 411
> S2AMFEndpoint(AbstractEndpoint).setupFlexClient(Message) 行: 910
> MessageBrokerFilter.invoke(ActionContext) 行: 92
> LegacyFilter.invoke(ActionContext) 行: 158
> SessionFilter.invoke(ActionContext) 行: 44
> BatchProcessFilter.invoke(ActionContext) 行: 67
> SerializationFilter.invoke(ActionContext) 行: 146
> S2AMFEndpoint(BaseHTTPEndpoint).service(HttpServletRequest,
> HttpServletResponse) 行: 278
> MessageBrokerServlet.service(HttpServletRequest, HttpServletResponse) 行: 322
> MessageBrokerServlet(HttpServlet).service(ServletRequest,
> ServletResponse) 行: 717
> ApplicationFilterChain.internalDoFilter(ServletRequest,
> ServletResponse) 行: 290
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) 行: 206
> S2ContainerFilter.doFilter(ServletRequest, ServletResponse, FilterChain) 行: 79
> ApplicationFilterChain.internalDoFilter(ServletRequest,
> ServletResponse) 行: 235
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) 行: 206
> HotdeployFilter.doHotdeployFilter(HttpServletRequest,
> HttpServletResponse, FilterChain) 行: 99
> HotdeployFilter.doFilter(ServletRequest, ServletResponse, FilterChain) 行: 67
> ApplicationFilterChain.internalDoFilter(ServletRequest,
> ServletResponse) 行: 235
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) 行: 206
> EncodingFilter.doFilter(ServletRequest, ServletResponse, FilterChain) 行: 69
> ApplicationFilterChain.internalDoFilter(ServletRequest,
> ServletResponse) 行: 235
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) 行: 206
> StandardWrapperValve.invoke(Request, Response) 行: 233
> StandardContextValve.invoke(Request, Response) 行: 191
> StandardHostValve.invoke(Request, Response) 行: 128
> ErrorReportValve.invoke(Request, Response) 行: 102
> StandardEngineValve.invoke(Request, Response) 行: 109
> CoyoteAdapter.service(Request, Response) 行: 293
> Http11Processor.process(Socket) 行: 849
> Http11Protocol$Http11ConnectionHandler.process(Socket) 行: 583
> JIoEndpoint$Worker.run() 行: 454
> Thread.run() 行: 637 [ローカル変数は使用不可]
>
> ◇コンソールの出力
> 2009-10-01 15:31:42,834 [http-8080-3] DEBUG
> org.seasar.framework.container.hotdeploy.HotdeployBehavior - HOT
> deployを開始します
> 情報: Session Created.
> 2009-10-01 15:31:42,851 [http-8080-3] DEBUG
> org.seasar.framework.container.hotdeploy.HotdeployBehavior - HOT
> deployを終了しました
> 2009-10-01 15:31:42,861 [http-8080-2] DEBUG
> org.seasar.framework.container.hotdeploy.HotdeployBehavior - HOT
> deployを開始します
> 情報: Session Destroyed.
> 2009-10-01 15:31:49,895 [http-8080-2] ERROR
> org.seasar.framework.container.hotdeploy.HotdeployHttpSession -
> 例外が発生しました。理由はjava.lang.IllegalStateException: setAttribute:
> セッションは既に無効化されています
> java.lang.IllegalStateException: setAttribute: セッションは既に無効化されています
> at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1291)
> at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1256)
> 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)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
> at java.lang.Thread.run(Thread.java:637)
> 2009-10-01 15:31:49,898 [http-8080-2] DEBUG
> org.seasar.framework.container.hotdeploy.HotdeployBehavior - HOT
> deployを終了しました
>
> ◇Flex側に返されるエラー
> [FaultEvent fault=[RPC Fault faultString="Detected duplicate
> HTTP-based FlexSessions, generally due to the remote host disabling
> session cookies. Session cookies must be enabled to manage the client
> connection correctly."
> faultCode="Server.Processing.DuplicateSessionDetected"
> faultDetail="null"] messageId="812CD3AE-4084-EE8F-CE31-E56717BFA127"
> type="fault" bubbles=false cancelable=true eventPhase=2]
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
Seasar-user メーリングリストの案内