我在 Windows 服务器上运行 Tomcat 8.5。我在 server.xml 中设置了一个虚拟主机,这样我现在就拥有了转到 defaultapp 的domain1.com 和转到虚拟主机的domain2.com。这很好用。
这两个域有不同的 Web 应用程序,但共享一些 Java war 模块。是否可以共享这些内容,以便每个主机只加载一次而不是两次?
编辑:我可能不清楚:我拥有的是托管在不同虚拟主机上的 2 个 Web 应用程序,但它们调用 Restful API。
其中一些 API 是通用的,而不是在两个虚拟主机中都实例化一个 war 模块,是否可以有一个由两个虚拟主机使用的通用实例?
我唯一能想到的是将所有 API war 模块放在一个虚拟主机中,并让另一个虚拟主机 Web 应用程序在那里调用 API。
这有道理吗?有替代方案吗?
感谢您的帮助。
在 tomcat 中,您没有像 JEE 服务器中那样可以进行复杂共享的 .ear。 更简单:
Bootstrap
|
System
|
Common
/ \
Webapp1 Webapp2 ...
因此您可以将.jar文件放在“Common”中以复制$CATALINA_BASE/lib中的jar文件,然后您可以将它们从.war文件中删除。