2012-08-16 66 views
0

我們的應用程序在SIT環境中工作正常(不在集羣中)。現在我們將它移動到JBoss集羣中的UAT環境(2個節點中的一個集羣)。Jboss集羣中的Java會話

現在一個奇怪的問題。

3 WAR文件部署:

  1. 管理應用程序
  2. EHS應用
  3. 簽證程序(我們的)

成功登錄定向到管理應用程序。 我們有2個鏈接;一個是Visa應用程序,另一個是EHS應用程序。

問題是... 當我們點擊或應用程序鏈接(Visa應用程序),導航沒有發生。 [httpsession不提供彈簧安全信息] 但是,如果我們點擊EHS鏈接並返回主頁,然後點擊我們的鏈接(Visa應用程序);它導航。

Log說httpsession對象爲null。 但所有這些應用程序都在SIT環境中工作。 如此混亂..

其他2應用程序在web.xml

<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>TKSOnlineServicesRealm</realm-name> 
    <form-login-config> 
     <form-login-page>/login.jsp</form-login-page> 
     <form-error-page>/login.jsp?error=1</form-error-page> 
    </form-login-config> 
</login-config> 

「的身份驗證方法爲「FORM」但我們的應用程序有‘基礎’。

<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>TKSOnlineServicesRealm</realm-name> 
</login-config> 

難道這是問題所在。 無法追蹤。請幫忙。迫在眉睫。

在此先感謝。

回答

0

我覺得你應該配置JBoss服務器做會話複製和/或粘性會話。如果沒有,用戶會話只存儲在一個JBoss服務器中,另一個不知道這個用戶,從而避免他在你的應用程序中導航。

有很多關於配置的信息,但我會建議檢查this鏈接來完成該操作,可以幫助您配置所有JBoss集羣的東西。

+0

此鏈接非常有用。但會話複製是通過在web.xml中添加「distributable />」標記進行配置的,並且負載平衡器配置爲粘性會話,我相信(對於此羣集環境,我們沒有訪問權限)。如果負載平衡器沒有粘性會話;它會有幫助嗎? REPL_ASYNC也會有幫助嗎? – asna 2012-08-16 08:32:19

+0

你的'web.xml'中的''可以。但是,您的應用中有'jboss-web.xml'來配置羣集?我會推薦使用粘性會話,但它應該沒有它。其次,記得用'-all'(或帶有集羣模塊的自定義配置文件)配置啓動JBoss,以在兩種情況下啓用集羣。 – jelies 2012-08-16 09:43:04

+0

'REPL_ASYNC'是默認的JBoss緩存模式,應該以這種方式工作。 – jelies 2012-08-16 09:44:41