Flex 4, BlazeDS 및 WebLogic 10.3.5를 사용하여 Flex 어플리케이션에서 다시 로그인하는 데 문제가 있습니다. .Flex에서 다시 로그인하면 Channel.Connect.Failed 오류가 발생합니다. NetConnection.Call.Failed : HTTP : Status 500 : url
문제를 일으키는 사용 사례는 다음과 같다 :
- 브라우저에서 응용 프로그램을 시작.
- j_security_check 작업으로 로그인 양식 페이지로 리디렉션하십시오.
- 응용 프로그램 로그인 및 사용.
- 브라우저에서 '뒤로'버튼을 누릅니다.
- 로그인 양식 페이지로 다시 돌아갑니다.
- 다시 로그인하십시오.
- BlazeDS에서 예외를 얻고 Flex/ActionScript에서 오류를 잡습니다.
WLS에 로그에 잡힌 예외 :
[BlazeDS]Unexpected error encountered in Message Broker servlet
flex.messaging.LocalizedException: The FlexSession is invalid.
at flex.messaging.FlexSession.checkValid(FlexSession.java:943)
at flex.messaging.FlexSession.getUserPrincipal(FlexSession.java:254)
at flex.messaging.HttpFlexSession.getUserPrincipal(HttpFlexSession.java:286)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:296)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
플렉스/ActionScript에서 잡힌 오류 :
faultCode: Client.Error.MessageSend
faultString: Send failed
faultDetail: Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 500: url: 'http://server:port/web-project/messagebroker/amf'
첫 번째는 동안 블레이즈 DS는 두 번째 세션을 얻을 것으로 보인다 여전히 유효하고 활동적입니다.
아는 사람, 정확히이 문제가 발생하고 어떻게 우아하게 해결할 수 있습니까? 나는 몇 가지 팁을 가지고 있지만 그들은 충분히 적합 알고하지 않습니다 플렉스/ActionScript에서 오류가 세션을 무효화하기 위해 로그 아웃 페이지로 리디렉션
- 캐치 후 로그인 페이지로 리디렉션하고 새로운 세션을 생성합니다.
- 자바 스크립트로 브라우저의 "뒤로"버튼을 비활성화하십시오.
나는 어떤 제안, 설명 및 조언을 주셔서 감사합니다. 감사.
이 팁을 가져 주셔서 감사합니다. 지금 당장은 그 프로젝트를 진행하고 있지 않지만, 나중에 돌아와서 결과를 모두 알게 될 때 다시 확인해 볼 것입니다. – Sharg