我们希望将一个工作应用程序拆分为两个不同的 .war
文件,以便能够在不影响另一个应用程序的情况下更新一个应用程序。每个 webapp 都有不同的 UI、不同的用户和不同的部署计划。
最简单的路径似乎是共享同一个会话,所以如果应用程序 A 设置 session.setAttribute("foo", "bar")
应用程序 B 将能够看到它。
有没有办法在同一个 Tomcat 实例中为两个应用程序共享 HttpSession
状态?
我们的应用程序在专用的 Tomcat 5.5 上运行,没有其他应用程序在同一个 tomcat 实例上运行,因此与会话共享有关的任何安全问题都不是问题。我们正在运行多个 Tomcat 实例,但平衡器使用的是粘性会话。
如果不可能或此 会话共享 是一个非常糟糕的主意,请发表评论。
原文由 Serxipc 发布,翻译遵循 CC BY-SA 4.0 许可协议
你不应该共享 HttpSession;但您可以共享其他对象。例如,您可以 通过 JNDI 注册一个对象 并在您的所有应用程序中访问同一个对象(数据库使用它来池化连接)。