Session 跨战争会话共享

Session 跨战争会话共享,session,jakarta-ee,tomcat,war,Session,Jakarta Ee,Tomcat,War,在我们的应用程序中,有两个不同的war文件部署在同一个tomcat中。在我们的例子中,我们在会话中存储了两次战争所需的一些属性,对于这些属性,我们应该能够从其他上下文(其他战争)访问一个上下文(一次战争)的会话 为了实现这一点,我们在tomcat中启用了跨上下文,并通过将会话存储在每个上下文的映射中来共享会话。但是这种方法变得复杂和麻烦,因此会话管理变得非常困难。而且,如果我们选择Tomcat集群,那么这种方法是失败的 因此,任何人都可以提出一种更好的方法来跨部署在单个tomcat或多个tomc

在我们的应用程序中,有两个不同的war文件部署在同一个tomcat中。在我们的例子中,我们在会话中存储了两次战争所需的一些属性,对于这些属性,我们应该能够从其他上下文(其他战争)访问一个上下文(一次战争)的会话

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


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

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

与登录APP1时创建一个会话类似,该信息将存储在Web服务上,该服务将保存该信息,直到APP1注销

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


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

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