我正在使用 tomcat 部署我的应用程序,我想部署为一个单一的战争,以服务多个上下文路径。
目前我有 app1.war 和 app2.war,但两者都有相同的内容,只是名称不同,通过 http:///app1 和 http:///app1.war 访问。但我想这样做,部署 app.war 并通过 app1 和 app2 上下文路径访问它。可以在tomcat中做吗?请帮我解决这个问题
我正在使用 tomcat 部署我的应用程序,我想部署为一个单一的战争,以服务多个上下文路径。
目前我有 app1.war 和 app2.war,但两者都有相同的内容,只是名称不同,通过 http:///app1 和 http:///app1.war 访问。但我想这样做,部署 app.war 并通过 app1 和 app2 上下文路径访问它。可以在tomcat中做吗?请帮我解决这个问题
这可以通过多种方式完成。我认为这种方式是最直接的:
webapps/
自动部署目录之外META-INF/context.xml
从您的 WAR 文件中提取。如果您的 WAR 没有META-INF/context.xml
文件,则只需使用其中只有一个文件的<Context />
文件conf/[service]/[host]/
目录中,同时作为app1.xml
和app2.xml
. ([service] 通常是“Catalina”,而 [host] 是虚拟主机的名称:在默认的 Tomcat 配置中,主机名始终是“localhost”)。app1.xml
andapp2.xml
并将元素的docBase
属性设置<Context>
为指向您在步骤 #1 中移动的 WAR 文件这应该为您提供一个物理 WAR 文件和从中部署的多个上下文。
尽管 Tomcat 支持这种配置,但我建议不要这样做:磁盘空间很便宜,它在运行时不会发生任何变化(您仍然会在内存中获得所有内容的两个副本),并且您失去了将不同 WAR 文件部署到不同上下文和/或更新的灵活性它们分开而不修改两个上下文的配置。
如果您需要我的建议,请坚持使用重复的 WAR 文件。