爲了避免在登錄頁面和ViewExpiredException
會話超時,我切換設置狀態使用保存到客戶端:註銷重定向用戶到登錄頁面後再次用戶嘗試再次登錄時,會話超時
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
我注意到,
ERROR [org.apache.catalina.connector.CoyoteAdapter] An exception or
error occurred in the container during the request processing
java.lang.ArrayIndexOutOfBoundsException
ERROR [org.apache.coyote.http11.Http11Processor] Error finishing response
java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method)
,用戶的主頁重定向:當會話超時,我試圖再次登錄,除非我得到這個錯誤,我會被重定向到我參觀的最後一頁。我還沒弄明白,但我認爲現在可以。 我現在的問題是當用戶在會話超時時單擊註銷鏈接並嘗試再次登錄時,他將被重定向到登錄頁面。我的觀察是因爲它沒有遇到上述錯誤,它繼續執行註銷鏈接應執行的操作,即執行Identity.logout()
並將用戶重定向到登錄頁面。我認爲導致重定向登錄頁面的人是pages.xml中的這一行。
<navigation from-action="#{identity.logout}">
<end-conversation before-redirect="true" />
<redirect view-id="/identifier.xhtml" />
</navigation>
但刪除行並沒有解決問題。可能的解決方案是:
被執行扣除註銷時會話超時,用戶試圖在會話超時,用戶嘗試再次登錄,並引導用戶登錄再次
停止持續的每一個方法主頁,而不是隻喜歡新鮮的登錄(我認爲這也將防止
Http11Processor
的ArrayIndexOutOfBoundsException
)
什麼你可以建議在實施此解決方案的最佳途徑?我使用jboss-soa 4.3.0
和jsf 1.1