Session 如何部署对用户完全透明的Java应用程序的新版本?

Session 如何部署对用户完全透明的Java应用程序的新版本?,session,java-8,continuous-deployment,wildfly-10,Session,Java 8,Continuous Deployment,Wildfly 10,我需要一个答案或教程来解释如何解决以下情况: 我们有一个运行Java8和Wildfly 10的服务器 我们已经部署了一场战争。让我们称之为系统战争 我们希望部署此应用程序的新版本,system_v2.war,前提条件如下: 实际版本system_v1.war在部署新版本system_v2.war时应保持运行 应保持用户会话,并且部署对他们应是透明的 当新版本system_v2.war已部署时,保存在system_v1.war中的所有用户会话都应迁移到新版本system_v2.war 当所有用

我需要一个答案或教程来解释如何解决以下情况:

  • 我们有一个运行Java8和Wildfly 10的服务器
  • 我们已经部署了一场战争。让我们称之为系统战争
  • 我们希望部署此应用程序的新版本,
    system_v2.war
    ,前提条件如下:
    • 实际版本system_v1.war在部署新版本system_v2.war时应保持运行
    • 应保持用户会话,并且部署对他们应是透明的
    • 当新版本system_v2.war已部署时,保存在system_v1.war中的所有用户会话都应迁移到新版本system_v2.war
    • 当所有用户会话迁移后,我们取消部署system_v1.war
    • 因此,现在我们只有一个版本,system_v2.war,它开发了新的功能,这个迁移对应用程序的当前用户和新用户是完全透明的
我们怎样才能做到这一点

例如,如果我们使用PHP,这不是什么大问题,我们只需要将新文件发送到服务器,一切都正常。没有用户会知道,所有会话都会保留,新功能也会加入。所以问题是如何用Java实现这一点

例如,使用Tomcat,我们可以用###001、##002来命名我们的战争,这样就可以部署一个透明的应用程序。通过这种方式,用户会话逐渐迁移到新版本。但我不清楚,如果我们立即取消部署旧版本,我们是否会丢失版本1中的用户会话。但是,如果我们没有丢失用户会话,(我想知道这是否也是真的),如何使用Wildfly 10实现这一点?

请参见类似问题: