Nu utilizaţi valori de proprietate JNDI specifice JBoss

Trebuie să înlăturaţi sau să înlocuiţi proprietăţi cu denumiri specifice JBoss utilizate la obţinerea IntialContext din aplicaţia dumneavoastră. Unealta de migrare scanează Java şi fişierele de proprietăţi pentru valorile de de proprietăţi: org.jnp.interfaces.NamingContextFactory, jnp://.* şi org.jboss.naming.*. De exemplu, dacă o aplicaţie specifică următoarele proprietăţi, unealta va afişa următorul text în culoarea roşie:

Liberty

Fişiere Java

Când mutaţi aplicaţia dumneavoastră la Liberty, nu specificaţi o fabrică de context iniţial sau un furnizor URL în proprietăţile transmise la constructorul InitialContext. Utilizaţi un constructor gol cu excepţia cazului în care sunt setate alte proprietăţi de numire.

Următorul exemplu ilustrează codul aplicaţiei pe care îl va afişa această regulă la migrarea la 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);
}

Pentru Liberty, înlăturaţi manual proprietăţile nenecesare:


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

Fişiere de proprietăţi

În plus faţă de semnalarea fişierelor Java, unealta va semnala fişierele de proprietăţi pentru proprietăţile specifice JBoss enumerate anterior. Pentru Liberty, înlăturaţi aceste proprietăţi din fişier.

WebSphere Application Server tradiţional

Fişiere Java

La migrarea la WebSphere Application Server tradiţional, vor fi semnalate aceleaşi proprietăţi JBoss menţionate anterior. O corecție automată va semnala fișierele Java care modifică proprietățile JBoss la valorile care funcționează în WebSphere Application Server tradițional:

Următorul exemplu ilustrează codul aplicaţiei pe care îl va semnala această regulă la migrarea la WebSphere Application Server tradiţional:


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);
}

Folosind exemplul prezentat mai devreme, codul va fi migrat după cum se arată:


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);
}

Altă opţiune la mutarea la WebSphere Application Server tradiţional este înlăturarea proprietăţilor şi utilizarea constructorului InitialContext() gol.

Atunci când este furnizată, corecția automată va fi aplicată numai atunci când org.jboss.naming este specificat fără șir de caractere la sfârșit așa cum se arată în exemplul precedent. Dacă org.jboss.naming este urmată de un șir suplimentar, regula va marca valoarea. De exemplu, această proprietate va fi marcată: java.naming.factory.url.pkgs = org.jboss.naming:org.jnp.interfaces.


Fişiere de proprietăţi

În plus faţă de semnalarea fişierelor Java, unealta va semnala fişierele de proprietăţi pentru proprietăţile specifice JBoss enumerate anterior. Pentru WebSphere Application Server tradiţional, înlăturaţi manual aceste proprietăţi din fişier sau modificaţi-le la valorile de proprietăţi de numire WebSphere.