No utilizar valores de propiedad JNDI específicos de JBoss

Debe eliminar o sustituir las propiedades de denominación específicas de JBoss al obtener el IntialContext en la aplicación. La herramienta de migración busca en Java y los archivos de propiedades los valores de propiedad: org.jnp.interfaces.NamingContextFactory, jnp://.* y org.jboss.naming.*. Por ejemplo, si una aplicación especifica las propiedades siguientes, la herramienta marcaría el texto rojo:

Liberty

Archivos Java

Al mover su aplicación a Liberty, no especifique una fábrica de contexto inicial o un URL de proveedor en las propiedades que se pasan al constructor InitialContext. Utilice un constructor vacío a menos que se estén estableciendo otras propiedades de denominación.

El ejemplo siguiente ilustra el código de aplicación que esta regla marcará al migrar a Liberty:


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

ht.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
ht.put("java.naming.provider.url", "jnp://localhost:1099");
ht.put("java.naming.factory.url.pkgs", "org.jboss.naming");

InitialContext ctx = new InitialContext(ht);
}

Para Liberty, elimine manualmente las propiedades innecesarias:


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

Archivos de propiedades

Además de marcar archivos java, la herramienta marcará archivos de propiedades para las propiedades específicas de JBoss listadas anteriormente. Para Liberty, elimine estas propiedades del archivo.

WebSphere Application Server tradicional

Archivos Java

Al migrar a WebSphere Application Server tradicional, se marcarán las mismas propiedades JBoss mencionadas anteriormente. Una corrección automatizada marcará los archivos Java que cambien los valores de las propiedades de nomenclatura JBoss a los valores que funcionan en WebSphere Application Server tradicional:

El ejemplo siguiente ilustra el código de aplicación que esta regla marcará al migrar a WebSphere Application Server tradicional:


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

ht.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
ht.put("java.naming.provider.url", "jnp://localhost:1099");
ht.put("java.naming.factory.url.pkgs", "org.jboss.naming");

InitialContext ctx = new InitialContext(ht);
}

Usando el ejemplo mostrado anteriormente, el código será migrado como se muestra:


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");
ht.put("java.naming.factory.url.pkgs", "com.ibm.ws.naming");

InitialContext ctx = new InitialContext(ht);
}

Otra opción al mover a WebSphere Application Server tradicional es eliminar las propiedades y utilizar el constructor InitialContext().

Cuando se proporcione, la corrección automática sólo se aplicará cuando el campo org.jboss.naming sin una cadena al final como se muestra en el ejemplo anterior. Si el valor org.jboss.naming va seguido de una cadena adicional, la regla marcará el valor. Por ejemplo, se marcará esta propiedad: java.naming.factory.url.pkgs = org.jboss.naming:org.jnp.interfaces.


Archivos de propiedades

Además de marcar archivos java, la herramienta marcará archivos de propiedades para las propiedades específicas de JBoss listadas anteriormente. Para WebSphere Application Server tradicional, elimine manualmente estas propiedades del archivo o cámbielas por los valores de propiedades de denominación de WebSphere.