Session 在并行tomcat Web应用程序之间进行会话迁移的简单方法?

Session 在并行tomcat Web应用程序之间进行会话迁移的简单方法?,session,tomcat,deployment,Session,Tomcat,Deployment,我在一台Tomcat7(7.0.28)服务器上有一个webapp。我想使用Tomcat内置的并行部署功能(FOO###001.war、FOO###002.war等),但我不能让用户在会话超时或无效之前保持旧版本。我也不能让他们在旧webapp上的会话无效,然后让他们在新webapp上再次登录。我已经研究过集群化tomcat服务器,但是我只有一个tomcat实例 有没有一种简单的方法可以使用我现有的设置而不做太多的更改(最好是做任何更改)来自动将会话从旧版本迁移到新版本,而不会使会话无效或从web

我在一台Tomcat7(7.0.28)服务器上有一个webapp。我想使用Tomcat内置的并行部署功能(FOO###001.war、FOO###002.war等),但我不能让用户在会话超时或无效之前保持旧版本。我也不能让他们在旧webapp上的会话无效,然后让他们在新webapp上再次登录。我已经研究过集群化tomcat服务器,但是我只有一个tomcat实例


有没有一种简单的方法可以使用我现有的设置而不做太多的更改(最好是做任何更改)来自动将会话从旧版本迁移到新版本,而不会使会话无效或从webapp引导用户?

经过大量研究和挫折,答案是,我想用Tomcat实现的目标是不可能的——至少不是我希望的那样。我最终提出的解决方案是使用memcached会话管理器,而不是默认的Tomcat序列化策略。这允许会话在Tomcat外部保持活动状态,也允许在同一Tomcat容器中运行的多个WebApp之间共享会话

但是,这又产生了另一个问题,因为现在同一个会话对同一个webapp(不同版本)的两个实例有效。Tomcat不知道如何处理这种情况,因为旧版本和新版本的应用程序都位于同一个地址,而不是选择一个实例,Tomcat什么也不做,只显示一个空白页面。解决这个问题的方法有些粗糙——我修改了Ant部署脚本,以同时部署新版本的webapp和取消部署旧版本的webapp

这将导致应用程序的完全无缝部署,对最终用户没有影响