2012-05-04 91 views
4

我使用apache tomcat 7在單臺機器上運行很多虛擬主機,我在server.xml中爲每個虛擬主機插入一個Host標記,以便我可以集中管理它們。
但現在,在添加了很多主機標記之後,server.xml變得如此龐大&我正在尋找一種方法將每個虛擬主機相關標記放在一個單獨的xml文件中(與httpd.conf中的apache完全相同)&虛擬主機管理)。例如我爲每個主機制作一個單獨的xml文件&將它們全部放入一個目錄&,強制tomcat加載它們!
任何想法???如何將apache tomcat的server.xml分成幾個單獨的文件?

回答

9

以下內容應該可以工作,但不會因爲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> 

然後你插入此到<engine>元素內部的server.xml中,如下所示:

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

根據需要重複儘可能多的主機。

+1

謝謝,這個解決方案可以正常工作,但是無論如何,當我們添加新的主機時,我們不需要更改server.xml來添加任何額外的命令嗎?就像使用<!ENTITY all_hosts SYSTEM「* .txt」> –

+0

不是我所知道的。 –

+0

如何指定我想包含的xml文件的絕對路徑? –

相關問題