2012-08-16 93 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