2

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

4

2 回答 2

0

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

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

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

于 2016-08-04T10:56:15.313 回答
-1

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

于 2014-03-30T22:53:04.097 回答