您可以使用 Liberty上的 <jndiEntry> 元素将常量从服务器配置文件绑定到缺省 Java™ 命名和目录接口 (JNDI) 名称空间。
有关此任务
V 21.0.0.5 和更高版本中 JNDI 绑定的文档在 Open Liberty Web 站点上提供。
Liberty 中提供了缺省 JNDI 名称空间,用于提供与应用程序所需的其他对象的绑定。 服务器配置文件中声明的任何数据源都可以在缺省 JNDI 名称空间中使用。 此外,您可以将配置文件中的 Java 字符串和基本数据类型绑定到 JNDI 名称空间。 随后在运行时应用程序可以使用这些常量,这提供了一种简单的可移植方式来将配置值传递到应用程序。
有关 JNDI 命名的更多信息,请参阅 命名。
过程
- 通过在 Liberty 服务器的 server.xml 文件中指定
jndi-1.0 Liberty 功能部件,将常量添加到缺省 JNDI 名称空间。
<featureManager>
<feature>jndi-1.0</feature>
</featureManager>
- 通过在 server.xml 文件中指定具有 jndiName 和 value 属性的
<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" />
- 使用 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 命名和目录接口。