【问题标题】:Session sharing across WARs跨 WAR 的会话共享
【发布时间】:2014-08-13 06:31:25
【问题描述】:

在我们的应用程序中,我们在同一个 tomcat 中部署了 2 个不同的 war 文件。在我们的例子中,我们在会话中存储了两个 WAR 都需要的一些属性,为此我们应该能够从另一个上下文(另一个战争)访问一个上下文(一个战争)的会话。

为了实现这一点,我们在 tomcat 中启用了跨上下文,并通过将它们存储在每个上下文的映射中来共享会话。但是这种方法变得复杂和繁琐,以至于会话管理变得非常困难。此外,如果我们选择 Tomcat 集群,那么这种方法就失败了。

那么任何人都可以建议一种更好的方法来跨部署在单个 tomcat 或多个 tomcat 节点中的多个应用程序共享会话

【问题讨论】:

  • 不推荐分享HttpSession;但您可以共享其他对象。例如,您可以通过 JNDI 注册一个对象并在所有应用程序中访问同一个对象(数据库使用它来池连接)。

标签: session jakarta-ee tomcat war


【解决方案1】:

您可以创建一个简单的网络服务来存储会话相关信息。

就像在 APP1 上登录时创建一个会话一样,该信息将存储在 Web 服务上,该服务将保存该信息直到 APP1 注销。

在 APP1 会话存在之前,APP2 将可以访问相同的信息。

Webservice 可以是一个简单的 REST API,它将包含 JSON 格式的信息。

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 2016-12-29
    相关资源
    最近更新 更多