为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_花开花谢_0 2019-12-15 12:08:08
我们希望将一个正在运行的应用程序拆分为两个不同的.war文件,以便能够更新一个应用程序而不影响另一个应用程序。每个Web应用程序将具有不同的UI,不同的用户和不同的部署时间表。最简单的路径似乎是共享同一会话,因此如果应用A设置了session.setAttribute("foo", "bar")应用B,则可以看到它。有没有办法HttpSession在同一个Tomcat实例中共享两个应用程序的状态?我们的应用程序在专用的Tomcat 5.5上运行,没有其他应用程序在同一tomcat实例上运行,因此,有关会话共享的任何安全问题都不会成为问题。我们正在运行多个Tomcat实例,但是平衡器正在使用粘性会话。如果不可能,或者此会话共享不是一个好主意,请发表评论。
查看完整描述

3 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

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

查看完整回答
反对 回复 2019-12-16
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

要注意的一件事是,两个Web应用程序将使用不同的类加载器。如果要共享对象,则它们需要使用来自相同类加载器的相同版本的类(否则,您将获得LinkageErrors)。这意味着要么将它们放入两个Web应用程序共享的类加载器中(例如,系统类路径),要么使用序列化有效地消耗并使用正确版本的类在正确的类加载器中重构对象。


查看完整回答
反对 回复 2019-12-16
  • 3 回答
  • 0 关注
  • 361 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信