如何将apache tomcat的server.xml拆分为几个单独的文件?

如何将apache tomcat的server.xml拆分为几个单独的文件?,tomcat,config,virtualhost,server.xml,Tomcat,Config,Virtualhost,Server.xml,我使用ApacheTomcat7在一台机器上运行许多虚拟主机,我在server.xml中为每个虚拟主机插入一个Host标记,以便以集中的方式管理它们。 但是现在,在添加了很多主机标记之后,server.xml变得如此庞大&我正在寻找一种方法,将每个与虚拟主机相关的标记放在一个单独的xml文件中(与apache在httpd.conf和虚拟主机管理中所做的完全相同)。e、 g我为每个主机创建一个单独的xml文件,并将它们全部放在一个目录中,强制tomcat加载它们 有什么想法吗?以下内容应该可以,但

我使用ApacheTomcat7在一台机器上运行许多虚拟主机,我在server.xml中为每个虚拟主机插入一个
Host
标记,以便以集中的方式管理它们。
但是现在,在添加了很多主机标记之后,server.xml变得如此庞大&我正在寻找一种方法,将每个与虚拟主机相关的标记放在一个单独的xml文件中(与apache在httpd.conf和虚拟主机管理中所做的完全相同)。e、 g我为每个主机创建一个单独的xml文件,并将它们全部放在一个目录中,强制tomcat加载它们

有什么想法吗?

以下内容应该可以,但由于Tomcat的错误,无法实现。我已经修复了trunk()和7.0.x()中的错误,该修复将包含在Tomcat7.0.28以后的版本中。我可以发誓这以前是有效的。可能是JVM中的xml解析器在某个时候已经收紧了,这仍然适用于较旧的JVM版本,但我还没有对此进行测试

您可以使用XML实体——每个主机一个。例如:

元素之前插入以下内容:

<!DOCTYPE server-xml [
  <!ENTITY host1 SYSTEM "host1.txt">
]>

host1.txt的内容是要定义的主机元素:

<Host>
  ...
</Host>

...
然后将其插入到
元素中的server.xml中,如下所示:

<engine ...>
  &host1;
</engine>

&主机1;

对所需的任意多台主机重复此操作。

谢谢,此解决方案工作正常,但在添加新主机时是否不需要更改server.xml以添加任何额外命令?类似于使用如何指定要包含的xml文件的绝对路径?仅指定绝对路径不起作用(/my/absolute/path/file.txt)?额外的服务器文件需要以“.txt”结尾还是以“xml”结尾?示例host1.txt是否可以有自己的标记来包含附加文件?例如,您可以从包含所有其他主机的server.xml中包含hosts.txt。