从服务器配置文件将 JNDI 绑定用于常量

您可以使用 Liberty上的 <jndiEntry> 元素将常量从服务器配置文件绑定到缺省 Java™ 命名和目录接口 (JNDI) 名称空间。

有关此任务

Open Liberty V 21.0.0.5 和更高版本中 JNDI 绑定的文档在 Open Liberty Web 站点上提供。

Liberty 中提供了缺省 JNDI 名称空间,用于提供与应用程序所需的其他对象的绑定。 服务器配置文件中声明的任何数据源都可以在缺省 JNDI 名称空间中使用。 此外,您可以将配置文件中的 Java 字符串和基本数据类型绑定到 JNDI 名称空间。 随后在运行时应用程序可以使用这些常量,这提供了一种简单的可移植方式来将配置值传递到应用程序。

有关 JNDI 命名的更多信息,请参阅 命名

过程

  1. 通过在 Liberty 服务器的 server.xml 文件中指定 jndi-1.0 Liberty 功能部件,将常量添加到缺省 JNDI 名称空间。
    <featureManager>
       <feature>jndi-1.0</feature>
    </featureManager>
  2. 通过在 server.xml 文件中指定具有 jndiNamevalue 属性的 <jndiEntry> 元素,将常量绑定到 JNDI 名称空间。
    <jndiEntry jndiName="schoolOfAthens/defaultAdminUserName" value='"plato"' />
    <jndiEntry jndiName="schoolOfAthens/defaultAdminPassword" value='"republic"' />
    如果要将 java.net.URL 实例绑定至 JNDI 名称空间,请使用 jndiURLEntry 配置:
    <jndiURLEntry jndiName="urls/OpenLiberty" value="http://www.openliberty.io" />
  3. 使用 JNDI 上下文并利用以下代码从应用程序中查找常量:
      Object jndiConstant = new InitialContext().lookup("schoolOfAthens/defaultAdminUserName");
      String defaultAdmin = (String) jndiConstant;
    注:
    请参阅以下 Java 文字示例:
    • 后跟换行符的字符串 "Hello, world"
      <jndiEntry jndiName="a" value='"Hello, world.\n"' />
    • 包含二进制值 1010101 的整数:
        <jndiEntry jndiName="b" value="0b1010101" />
    • 单个字符 'X'
         <jndiEntry jndiName="c" value="'X'" />
    • 双精度浮点数 1.0
         <jndiEntry jndiName="d" value="1.0D" />

    有关 <jndiEntry> 元素的更多信息,请参阅 Java 命名和目录接口