IBM WebSphere Liberty Datasource 可以从 server.xml 拆分到一个包含文件中吗?

Can IBM WebSphere Liberty Datasource be split from the server.xml into an include file?

IBM WebSphere Liberty 能否处理将 datasources/jndi 条目从 server.xml 拆分为包含?

当我将数据源从 server.xml 拆分到它自己的文件中,并将其作为 include 包含在库标签下方的 server.xml 文件中时:

<include location="${server.config.dir}/datasources-join-include.xml"/>

和数据源-join-include.xml 文件:

<?xml version="1.0" encoding="UTF-8" ?>
<server description="Datasource join include file">

  <dataSource id="db" jndiName="jdbc/Config">
     <jdbcDriver libraryRef="OracleLib"/>
     <properties.oracle URL="jdbc:oracle:xxx:@hostname:port:db" password="password" user="user"/>
  </dataSource>

  <jndiEntry id="db" jndiName="database" value="jdbc/XXXX"/>

</server>

当使用 include 以这种方式设置时,它失败了(似乎无法识别数据源)。当我将数据源和 jndientry 直接放回到 server.xml 中时,我在包含 include 的位置完全相同,它工作正常。

是的,您可以将 Liberty 数据源(dataSource 元素)放入包含文件并从 server.xml 引用包含文件,就像您的示例中所示。它对我很有用,所以您的文件 structure/file 名称可能存在一些细微差别?我建议对所有内容进行双重或三次检查以确保万无一失。您使用的是相对位置 ${server.config.dir},这意味着您的 datasources-join-include.xml 文件应该与您的 server.xml 位于同一文件夹中,并且应该具有相同的名称。

如果它仍然不适合您,这里有一些可能有助于调试的东西。 Liberty blog post 描述了几个 Liberty REST 端点,其中一个向您展示了配置的合并视图。在您的情况下,在配置博客 post 中描述的必要功能以使 REST 端点可用后,试试看它是否识别您的数据源的配置,

https://localhost:9443/ibm/api/config/dataSource

是的,Liberty 可以将数据源从 server.xml 拆分到它自己的文件中,然后通过 <include /> 包含进来,这对任何配置元素都是如此。

我没有发现您的配置有任何问题,所以可能是文件位置或名称不正确。我建议您检查您的日志以确保您没有看到 CWWKG0090E,这表明 server.xml 不能 find/resolve 您的包含文件。