在配置文件中使用 include 元素
可以将所有配置保留在单个 server.xml 文件中,也可以使用 include 元素来合并单独文件中的配置以创建对您最有用的结构。
关于此任务
维护复杂配置的较简单方式是将其分割成一组文件。例如:
- 您可能想要包括一个含有特定于本地主机的变量的文件,以便您的主要配置可用在多个主机上。
- 您可能想要将特定应用程序的所有配置保留在单独文件中,该文件可以随应用程序本身进行版本化。
示例
这是用于包括配置文件的语法。如果您想要跳过找不到的包含文件,那么可以将 optional 属性设为 true:
<include optional="true" location="pathname/filename"/>
或 <include optional="true" location="url"/>
以下列表显示了可能的位置;它们按显示的顺序进行搜索。
- 在相对于父文件指定的位置中
- 在服务器配置目录中
- 在指定为绝对路径的位置中
- 在 Web 服务器上
要确保包含配置的行为符合预期,需要了解所包含配置文件的下列处理规则:
- 对于单项服务(例如日志记录或应用程序监视),以条目在文件中的出现顺序来处理条目,后来的条目添加到或覆盖先前的条目。这对于配置实例(例如应用程序或数据源)也成立,其中配置实例具有相同的标识。
- 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>