使用可移植 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 有效:

如果在同一 Java 源文件中找到这些 JNDI 属性值的文字串值,那么 javax.naming.InitialContext(Hashtable) 构造函数,然后使用 不要使用 JBoss -specific JNDI 属性值 WebSphere Application Server 的传统规则。