1

我正在处理的应用程序目前在 tomcat 中的多个上下文下在生产环境中运行,我们通过为每个文件创建单独的 context.xml 文件来实现这一点,我们在其中指定指向每个文件中相同目录的 docbase。我们目前正在评估 Tomcat 的并行部署功能,但我很难找到一种方法来让它与我们当前的设置一起工作。我已经阅读了 tomcat 文档(http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naming),它似乎不支持我们当前的设置,但我想联系在我们更改设置 tomcat 的方式之前,请向社区询问。如果我们为每个上下文创建单独的战争并将它们分别部署在 webapps 文件夹中,我就能够让它工作。

有谁知道我们当前的部署机制是否可以与并行部署过程一起使用,如果可以,那将如何实现?

提前感谢您的指导。

4

1 回答 1

4

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

File:   /{tomcat.base}/conf/Catalina/localhost/myWebsite.xml
<Context reloadable="true" crossContext="true" docBase="/Users/jeremy/myapp"></Context>

然后,您可以通过将应用程序复制到其新位置(例如:/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 找到新的上下文文件,就会加载新版本的应用程序,并将新用户发送到新版本的应用程序。现有用户的会话到期后将迁移到新版本。

感谢 tomcat 用户邮件列表中所有帮助我解决此问题的人 http://tomcat.10.x6.nabble.com/Tomcat-7-0-27-on-Mac-OSX-Lion-Is-it-Possible -to-use-Tomcat-Parallel-Deployment-when-the-Context-Namee-td5000908.html#a5000920

于 2013-07-02T22:41:28.110 回答