Debe eliminar o sustituir las propiedades de denominación específicas de WebLogic al obtener el IntialContext en la aplicación.
La herramienta de migración busca en los archivos Java, XML y de propiedades los valores de propiedad:
weblogic.jndi.WLInitialContextFactory, t3://.* y t3s://*.
Por ejemplo, si una aplicación especifica las propiedades siguientes, la herramienta marcaría el texto rojo:
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 el 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", "weblogic.jndi.WLInitialContextFactory"); ht.put("java.naming.provider.url", "t3://localhost:7001"); InitialContext ctx = new InitialContext(ht); } |
Elimine manualmente las propiedades innecesarias:
|
import javax.naming.InitialContext; ... void main( String[] args ) { InitialContext ctx = new InitialContext(); } |
Además de marcar archivos Java, la herramienta marcará archivos xml que contienen valores de propiedades de WebLogic. Para Liberty, las propiedades deben eliminarse para utilizar los valores de inicialización de InitialContext predeterminados.
Además de marcar archivos java y xml, la herramienta marcará archivos de propiedades que contienen valores de propiedades de WebLogic. Para Liberty, las propiedades deben eliminarse.
Al migrar a WebSphere Application Server tradicional, se marcarán las mismas propiedades WebLogic mencionadas anteriormente. En el explorador de orígenes hay un arreglo rápido para archivos Java que cambia los valores de propiedades de denominación de WebLogic por unos que funcionen 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", "weblogic.jndi.WLInitialContextFactory"); ht.put("java.naming.provider.url", "t3s://localhost:7001"); InitialContext ctx = new InitialContext(ht); } |
Utilizando el mismo ejemplo mostrado anteriormente, después de ejecutar el arreglo rápido de Java de WebSphere Application Server tradicional, el código se migrará tal 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"); InitialContext ctx = new InitialContext(ht); } |
Nota: El arreglo rápido utiliza el puerto de programa de arranque predeterminado, 2809, para todos los URL t3, incluidos los URL 't3s://' de SSL. Compruebe los valores del servidor para asegurarse de que se utiliza el puerto correcto para cada URL. Para obtener información adicional, consulte el artículo Valores de número de puerto para WebSphere Application Server tradicional.
Otra opción al mover a WebSphere Application Server tradicional es eliminar las propiedades y utilizar el constructor InitialContext().
Aviso: el arreglo rápido sólo ajusta literales. Si se crea un URL utilizando variables, se deberá migrar manualmente.
Ejemplo de variable antes de aplicar el arreglo rápido:|
void main( String[] args ) { Hashtable ht = new Hashtable(); ... String port = "7001"; ht.put("java.naming.provider.url", "t3://localhost:" + port); InitialContext ctx = new InitialContext(ht); } |
|
void main( String[] args ) { Hashtable ht = new Hashtable(); ... String port = "7001"; ht.put("java.naming.provider.url", "corbaloc:iiop:localhost:" + port); InitialContext ctx = new InitialContext(ht); } |
Observe que la variable de tipo serie port no ha cambiado. Asegúrese de que se
migren todas las variables de este tipo.
El ejemplo siguiente muestra cambios similares aplicados a código XML.
Código XML antes de aplicar el arreglo rápido:|
<property name="java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory"/> <property name="java.naming.provider.url" value="t3://localhost:7001/"/> |
|
<property name="java.naming.factory.initial" value="com.ibm.websphere.naming.WsnInitialContextFactory"/> <property name="java.naming.provider.url" value="corbaloc:iiop:localhost:2809/"/> |
Aunque la herramienta de migración comprueba los archivos de propiedades, la fábrica de denominación y las propiedades de proveedor no se migran mediante un arreglo rápido. Para WebSphere Application Server tradicional, elimine las propiedades o cambie los valores de las propiedades de denominación de WebSphere.
Consulte también la regla Utilizar valores de propiedad JNDI portables.