繁体   English   中英

是否可以在同一部署路径下部署多个war文件?

[英]Is it possible to deploy multiple war files under the same deployment path?

假设我有:

  • foo.war
  • bar.war

是否有可能将它们以某种方式部署到同一部署路径? 例如,在以下位置访问它:

战争文件的内容是否以某种方式合并? 如何处理文件冲突(例如,假设它们都具有index.jsp文件)?

提前提醒!

是与否

我认为不可能以某种方式将它们合并到Tomcat之类的servlet容器内的同一文件系统路径中(除非您要编写某种复杂的智能脚本来这样做)。 对于初学者来说,每个.war将有一个WEB-INF/web.xml文件,并且每个人都将依靠其自己的文件的内容来起作用-哪个赢了?

但是您可以想象...

  • 部署到2个不同的上下文(或容器或主机),并使用某种负载平衡器(硬件或软件)将某些请求路由到一个,将其他请求路由到另一个。
  • 使用“覆盖”策略(例如Maven Overlays )制作第二个(也是最后一个).war,它是另一个.war文件的派生和扩展。

Servlet规范明确禁止这样做。 部署的Web应用程序可能没有相同或重叠的上下文根。 根据Servlet 3.0规范的10.5节:

由于应用程序的上下文路径确定了Web应用程序内容的URL命名空间,因此Web容器必须拒绝Web应用程序,该Web应用程序定义了可能导致此URL命名空间潜在冲突的上下文路径。 例如,这可能通过尝试使用相同的上下文路径部署第二个Web应用程序来发生。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM