跨 WAR 的 session 共享

标签 session jakarta-ee tomcat war

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

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

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

最佳答案

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

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

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

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

关于跨 WAR 的 session 共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24362172/

相关文章:

r - 在哪里可以找到 R session 警告日志?

linux - Tomcat 根本没有部署新版本的文件 - linux/eclipse

apache - 将 Web 应用程序从 Jrun 迁移到 Tomcat 服务器

java - Glassfish服务器开源添加安装失败

java - 将Netbeans中依赖的maven项目中的代码更改热部署到tomcat

session - Web 应用程序的基于 token 的身份验证 : how to cache token?

node.js - 如何在express.js中启用 session

asp.net - 无 Cookie session 有多重要? Web 应用程序框架是否应该为它们提供支持?

java - Glassfish 上的 Hazelcast 作为 OSGI 包

java - 您可以在 JSF 渲染器中添加子组件吗