【问题标题】:sharing session between two wars in a single ear两场战争在一个耳朵里共享会话
【发布时间】:2012-12-17 15:16:13
【问题描述】:

我的耳朵可以包两场战争。战争 1 具有所有身份验证形式,战争 2 具有用户可以使用的应用程序。用户通过超链接从战争 1 中的主页重定向到战争 2 中的应用程序主页。当用户登录并导航到战争 2 中的页面时,由于上下文不同,会话会丢失,并且新上下文会创建新会话(根据我的理解)。有什么方法可以在两个上下文之间共享会话数据?我正在使用带有 netbeans 的 JSF 2.1 和 glassfish 3 服务器

【问题讨论】:

  • 问题是会话本身还是用户登录?
  • 一旦我在第一个上下文中登录并导航到第二个上下文,会话就会丢失,用户必须再次登录。我在第一个中设置的会话属性都没有到达第二个。

标签: session share glassfish-3


【解决方案1】:

我使用 WAS 会话共享功能启用了此功能,该功能允许我在同一耳朵的 2 个 WAR 之间共享会话。 但在那之后,我遇到了与 JSF 共享会话的另一个问题,即 2 场战争的导航规则有些混乱,例如,当我在第 2 场战争中导航时使用超链接从第 1 场战争转移到第 2 场战争时,我得到了这个来自 JSF 的错误:

没有与 viewId /dir1/dir2/war2page1.xhtml、动作 #{springManagedBean.beanAction(param)} 和结果 navigationOutcomeName 匹配的导航案例

似乎共享会话使第一次战争的导航规则正在取代第二次战争的导航规则。

【讨论】:

    【解决方案2】:

    您可以将其保存在 ServletContext 中,而不是会话中。 servletcontext 保持值直到服务器关闭。这里有一些主题,解释了如何通过不同的 servlet 上下文共享数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多