在配置檔中使用 include 元素
您可以將所有配置保存在單一 server.xml 檔中,也可以利用 include 元素,合併個別檔案中的配置來建立對您最有用的結構。
關於這項作業
將複雜配置分割成若干檔案,會比較好維護。例如:
- 您可能會想要併入一個含有本端主機專用變數的檔案,以便在多部主機上使用您的主要配置。
- 您可能會想要將特定應用程式的所有配置保留在能夠隨著應用程式本身而版本化的個別檔案中。
範例
這是併入配置檔的語法。如果要跳過找不到的併入檔,您可以將 optional 屬性設為 true:
<include optional="true" location="pathname/filename"/>
或
<include optional="true" location="url"/>
下列清單顯示可能的位置;它們依照顯示的順序來搜尋。
- 在相對於上層檔案而指定的位置中
- 在伺服器配置目錄中
- 在指定為絕對路徑的位置中
- 在 Web 伺服器上
如果要確定您併入配置的行為符合預期,您必須知道併入之配置檔的下列處理規則:
- 對於記載或應用程式監視之類的單態服務,各項目是依照它們在檔案中的出現順序來處理,後面的項目會附加到前面的項目,或置換前面的項目。 配置實例也是如此,例如,各配置實例有相同 ID 的應用程式或資料來源。
- include 陳述式可以放在 <server /> 元素內的任何位置。
- 在每個併入檔中,都必須有一個 <server /> 元素符合母項配置檔中的元素。
- 併入檔可以在其他併入檔內形成巢狀結構。
- 在邏輯上,每個併入檔都會合併到主要配置中,<include /> 陳述式出現在上層檔案中的位置。
在下列範例中,主要伺服器配置檔 server.xml 包含共用配置目錄中之 blogDS.xml 配置檔的內容。 blogDS.xml 檔包含一個資料來源定義。 這個定義已放在個別的配置檔中,因此,它可以併到一些不同的 server.xml 檔中,從而可供多個伺服器實例使用。
以下是 server.xml 檔的程式碼範例:
<server>
<featureManager>
<feature>servlet-3.0</feature>
<feature>jdbc-4.0</feature>
</featureManager>
<application id="blog" location="blog.war" name="blog" type="war"/>
<include optional="true" location="${shared.config.dir}/blogDS.xml"/>
</server>
以下是 blogDS.xml 檔的程式碼範例:
<server>
<dataSource id="blogDS" jndiName="jdbc/blogDS" jdbcDriverRef="derbyEmbedded">
<properties createDatabase="create" databaseName="C:/liberty/basics/derby/data/blogDB" />
</dataSource>
<jdbcDriver id="derbyEmbedded"/>
<library>
<fileset dir="C:/liberty/basics/derby" includes="derby.jar" />
</library>
</jdbcDriver>
</server>