此规则会标记 javax.naming.InitialContext.lookup 方法调用,其中结果会强制转换为 java.lang.String。
在 Liberty 上,通过将存储在 jndiEntry 元素中的值解释为 Java 文字串或原语数据类型,确定 javax.naming.InitialContext 查找方法所返回对象的类型。如果解析失败,准确值将以未修改的字符串形式提供。在 WebSphere Traditional 上,将以字符串形式返回基本数据类型。
将 JNDI 条目配置从 WebSphere Traditional 迁移到 Liberty 时,了解此差异至关重要。 例如,如果已在 WebSphere Traditional 中将 JNDI 值配置为 100,那么应用程序将编写为处理含初始值“100”的字符串。在 Liberty 中,如果您已按如下方式配置条目:
<jndiEntry jndiName=myjndi/initialLimit
value= ‘100’ />
Liberty 会将该值转换为整数原语。要使应用程序在 Liberty 中的工作方式与其在 WebSphere Traditional 中相同,应将此 JNDI 条目编码为:
<jndiEntry jndiName=myjndi/initialLimit
value=‘100
’ />
Migration Toolkit for Application Binaries 生成的 server.xml 文件中的 Liberty 配置将引用 JNDI 条目值来创建字符串值,以便应用程序在 Liberty 中的工作方式与其在 WebSphere Traditional 中相同。
有关更多信息,请参阅 Using JNDI binding for constants from the server configuration files 文档。