5

我使用apache tomcat 7在单台机器上运行很多ofo虚拟主机,我Host在server.xml中为每个虚拟主机插入一个标签,这样我就可以集中管理它们。
但是现在,在添加了很多主机标签之后,server.xml 变得如此之大,我正在寻找一种方法将每个虚拟主机相关标签放在一个单独的 xml 文件中(与 apache 对 httpd.conf 和虚拟主机所做的完全相同)管理)。例如,我为每个主机创建一个单独的 xml 文件并将它们全部放入一个目录并强制 tomcat 加载它们!
任何的想法???

4

1 回答 1

11

以下应该可以工作,但不是由于 Tomcat 错误。我已经修复了主干 ( r1333827 ) 和 7.0.x ( r1333829 ) 中的错误,该修复将包含在 Tomcat 7.0.28 及以后的版本中。我可以发誓这以前有效。可能是 JVM 中的 xml 解析器在某个时候被收紧了,这仍然适用于较旧的 JVM 版本,但我还没有测试过。

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

在元素之前插入以下<server>内容:

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

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

<Host>
  ...
</Host>

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

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

根据需要对尽可能多的主机重复此操作。

于 2012-05-04T09:48:30.933 回答