使用Tomcat并行部署时,上下文名称可能与WAR名称不同

使用Tomcat并行部署时,上下文名称可能与WAR名称不同,tomcat,tomcat7,Tomcat,Tomcat7,我正在处理的应用程序目前在tomcat中的多个上下文下运行,我们通过为每个应用程序创建单独的context.xml文件来实现这一点,我们在每个文件中指定指向同一目录的docbase。我们目前正在评估Tomcat的并行部署特性,我很难找到一种方法让它与我们当前的设置一起工作。我已经阅读了tomcat文档(),它似乎不支持我们当前的设置,但我想在我们改变设置tomcat的方式之前联系社区并询问一下。如果我们为每个上下文创建单独的WAR并在webapps文件夹中单独部署它们,我就能够让它工作 有人知道

我正在处理的应用程序目前在tomcat中的多个上下文下运行,我们通过为每个应用程序创建单独的context.xml文件来实现这一点,我们在每个文件中指定指向同一目录的docbase。我们目前正在评估Tomcat的并行部署特性,我很难找到一种方法让它与我们当前的设置一起工作。我已经阅读了tomcat文档(),它似乎不支持我们当前的设置,但我想在我们改变设置tomcat的方式之前联系社区并询问一下。如果我们为每个上下文创建单独的WAR并在webapps文件夹中单独部署它们,我就能够让它工作

有人知道我们当前的部署机制是否可以与并行部署过程一起工作吗?如果可以,将如何实现


提前感谢您的指导

您可以通过创建指向web应用程序的版本化上下文文件来实现所需的功能。例如,如果您有一个名为myWebsite的上下文,那么您需要创建一个名为myWebsite.xml的上下文文件。这将为您的应用程序设置docBase值。下面提供了一个例子

File:   /{tomcat.base}/conf/Catalina/localhost/myWebsite.xml
<Context reloadable="true" crossContext="true" docBase="/Users/jeremy/myapp"></Context>
文件:/{tomcat.base}/conf/Catalina/localhost/myWebsite.xml
然后,您可以通过将应用程序复制到它的新位置(例如:/Users/jeremy/myapp-v2)来执行并行部署,然后创建一个指向该新位置的新上下文文件。新的上下文文件应该像所有标准并行部署一样包含版本号

File:   /{tomcat.base}/conf/Catalina/localhost/myWebsite##001.xml
<Context reloadable="true" crossContext="true" docBase="/Users/jeremy/myapp-v2"></Context>
文件:/{tomcat.base}/conf/Catalina/localhost/myWebsite##001.xml
一旦tomcat找到新的上下文文件,就会加载新版本的应用程序,并将新用户发送到新版本的应用程序。一旦会话过期,现有用户将迁移到新版本

感谢tomcat用户邮件列表中的每一位在这方面帮助我的人