我们希望将一个正在运行的应用程序拆分为两个不同的.war文件,以便能够更新一个应用程序而不影响另一个应用程序。每个Web应用程序将具有不同的UI,不同的用户和不同的部署时间表。
.war
最简单的路径似乎是共享同一会话,因此如果应用程序A设置了session.setAttribute("foo", "bar")应用程序B,则可以看到它。
session.setAttribute("foo", "bar")
有没有办法HttpSession在同一个Tomcat实例中共享两个应用程序的状态?
HttpSession
我们的应用程序在专用的Tomcat 5.5上运行,在同一tomcat实例上没有其他应用程序在运行,因此,有关会话共享的任何安全问题都不会成为问题。我们正在运行多个Tomcat实例,但是平衡器正在使用粘性会话。
如果不可能,或者此会话共享不是一个好主意,请发表评论。
你不应该共享HttpSession;但你可以共享其他对象。例如,你可以通过JNDI注册对象,并在所有应用程序中访问同一对象(数据库使用此对象来池化连接)。