一尘不染

如何在Tomcat中将多个上下文映射到同一个war文件?

tomcat

我正在使用tomcat部署我的应用程序,我想作为一次战争部署到服务器多个上下文路径。

目前,我有app1.war和app2.war,但是两者的内容相同,只是通过http:///
app1和http:///app1.war访问的名称不同。但是我想这样做,部署app.war并通过app1和app2上下文路径访问它。是否可以在tomcat中进行?请帮助我


阅读 492

收藏
2020-06-16

共1个答案

一尘不染

这可以通过几种方式来完成。我认为这种方式是最直接的:

  1. 将WAR文件移到webapps/自动部署目录之外
  2. META-INF/context.xml从您的WAR文件中提取。如果你的战争没有一个META-INF/context.xml文件,只用一个文件,只是<Context />在它
  3. 将此文件复制到Tomcat的conf/[service]/[host]/目录都app1.xmlapp2.xml。([service]通常是“ Catalina”,[host]就是您的虚拟主机的名称:在默认的Tomcat配置中,主机名始终为“ localhost”)。
  4. 两者都进行编辑app1.xmlapp2.xml并设置元素的docBase属性<Context>以指向您在步骤1中移动的WAR文件。
  5. 重新启动Tomcat

这应该为您提供单个物理WAR文件以及从中部署的多个上下文。

尽管Tomcat支持此配置,但我还是建议您反对:磁盘空间便宜,运行时不会更改任何内容(您仍然会获得内存中所有内容的两个副本),并且失去了将不同的WAR文件部署到不同的上下文和/或更新的灵活性。分别修改它们,而无需修改
两个 上下文的配置。

如果您需要我的建议,请坚持复制WAR文件。

2020-06-16