使用缺省 InitialContext JNDI 属性

当迁移到 Liberty 时使用 java.naming.factory.initialjava.naming.provider.url JNDI 属性的缺省值。 在 WebSphere Application Server Traditional 中,这些属性的以下值无效:

迁移工具扫描 Java 和属性文件,以查找先前提到的属性。

jndi.properties 文件中,将标记 java.naming.factory.initialjava.naming.provider.url 属性关键字,而不考虑它们的值。如果属性文件规则检测到 jndi.properties 文件,请检查此文件中的属性。请移除 java.naming.factory.initialjava.naming.provider.url 属性,或在不需要任何属性的情况下删除此文件。

以下示例说明了此规则将标记的应用程序代码:


import java.util.Hashtable;
import javax.naming.InitialContext;
...
void main( String[] args ) {
Hashtable ht = new Hashtable();

ht.put(java.naming.factory.initial, com.ibm.websphere.naming.WsnInitialContextFactory);
ht.put(java.naming.provider.url, corbaloc:iiop:localhost:2809);

InitialContext ctx = new InitialContext(ht);
}

当使用 InitialContext(Hashtable) 构造函数时,请移除这两个属性。如果没有使用其他属性,那么可使用缺省构造函数。

以下示例说明了如何正确使用先前示例中所显示的代码:


import javax.naming.InitialContext;
...
void main( String[] args ) {
InitialContext ctx = new InitialContext();
}

当使用 InitialContext(Hashtable) 构造函数时,请移除这两个属性。如果没有使用其他属性,那么可使用缺省构造函数。

此规则具有用于除去这两个属性的自动修订。 将定制配置复制到应用程序构建文件以将其启用。

该规则还将标记 Java 代码中任何位置的 com.ibm.websphere.naming.WsnInitialContextFactory。移除此字符串,并验证它未用作 InitialContext 初始化的一部分。