使用可移植 JNDI 属性值

此规则将标记 javax.naming.InitialContext(Hashtable) 构造函数的任何使用,因为它并非总是能确定 Hashtable 中的运行时值。当使用 javax.naming.InitialContext(Hashtable) 构造函数时,请确保未使用任何专有 JNDI 属性值。JBoss 专有 JNDI 属性值包括:

如果未使用这些 JNDI 属性值,那么没有必要执行任何其他操作。如果使用了这些 JNDI 属性值,那么有三种可能的手动解决方案。

选项 1:使用 javax.naming.InitialContext() 构造函数

如果将不设置任何其他 JNDI 属性,请使用此选项。此选项对于 WebSphere Application Server Traditional 或 Liberty 有效。

选项 2:从 Hashtable 移除命名工厂和命名提供程序属性。

如果将设置其他 JNDI 属性,请使用此选项。此选项对于 WebSphere Application Server Traditional 或 Liberty 有效。

选项 3:将 JNDI 属性值替换为有效的 WebSphere Application Server Traditional JNDI 属性值

此选项对于 WebSphere Application Server Traditional 有效:

如果在使用了 javax.naming.InitialContext(Hashtable) 构造函数的同一 Java 源文件中找到了这些 JNDI 属性值的字符串字面值,请使用请勿使用特定于 JBoss 的 JNDI 属性值 WebSphere Application Server Traditional 规则和快速修复来完成此任务。