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