一尘不染

有什么方法可以在tomcat中的不同应用程序之间共享会话状态?

java

我们希望将一个正在运行的应用程序拆分为两个不同的.war文件,以便能够更新一个应用程序而不影响另一个应用程序。每个Web应用程序将具有不同的UI,不同的用户和不同的部署时间表。

最简单的路径似乎是共享同一会话,因此如果应用程序A设置了session.setAttribute("foo", "bar")应用程序B,则可以看到它。

有没有办法HttpSession在同一个Tomcat实例中共享两个应用程序的状态?

我们的应用程序在专用的Tomcat 5.5上运行,在同一tomcat实例上没有其他应用程序在运行,因此,有关会话共享的任何安全问题都不会成为问题。我们正在运行多个Tomcat实例,但是平衡器正在使用粘性会话。

如果不可能,或者此会话共享不是一个好主意,请发表评论。


阅读 275

收藏
2020-03-22

共1个答案

一尘不染

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

2020-03-22