Nu utilizaţi valorile de proprietate JNDI specifice WebLogic sau protocolul t3

Trebuie să înlăturaţi sau să înlocuiţi proprietăţile de numire specifice WebLogic utilizate la obţinerea IntialContext în aplicaţia dumneavoastră. Unelata de migrare scanează fişierele Java, XML şi de proprietăţi pentru valorile de proprietate: weblogic.jndi.WLInitialContextFactory, t3://.* şi t3s://*. De exemplu, dacă o aplicaţie specifică următoarele proprietăţi, unealta va semnala cu text roşu:

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 constructorul gol, dacă nu sunt setate alte proprietăţi de numire.

Următorul exemplu ilustrează codul de aplicaţie pe care această regulă îl va marca când se migrează la 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);
}

Înlăturaţi manual proprietăţile care nu sunt necesare:


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

Fişiere XML

În plus faţă de semnalarea fişierelor Java, unealta va semnala fişierele xml care conţin valori de proprietăţi WebLogic. Pentru Liberty, proprietăţile vor fi înlăturate pentru a folosi valorile de iniţializare InitialContext implicite.

Fişiere de proprietăţi

În plus faţă de semnalarea fişierelor Java şi fişierelor xml, unealta va semnala fişierele de proprietăţi care conţin valori de proprietăţi WebLogic. Pentru Liberty, proprietăţile trebuie înlăturate.

WebSphere Application Server tradiţional

Fişiere Java

Când migraţi la WebSphere Application Server tradiţional, vor fi semnalate aceleaşi proprietăţi WebLogic menţionate anterior. Va fi furnizată o soluție automată pentru fișierele Java care schimbă valorile proprietăților de denumire WebLogic cu cele care funcționează în WebSphere Application Server tradițional:

Următorul exemplu ilustrează codul de aplicaţie pe care această regulă îl va semnala când se migrează 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", "weblogic.jndi.WLInitialContextFactory");
ht.put("java.naming.provider.url", "t3s://localhost:7001");

InitialContext ctx = new InitialContext(ht);
}

Folosind același exemplu prezentat mai devreme, după rularea remedierii automate pentru WebSphere Application Server traditional, 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");

InitialContext ctx = new InitialContext(ht);
}

Notă: remedierea automată va utiliza portul bootstrap implicit, 2809, pentru toate URL-urile t3, inclusiv URL-urile SSL ' t3s:// '. Verificaţi-vă setările serverului pentru a vă asigura că este utilizat portul corect pentru fiecare URL. Pentru informaţii suplimentare, consultaţi articolul Setările de număr de port pentru WebSphere Application Server tradiţional.

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

Atenție : Corecția automată va ajusta doar literalele. Dacă un URL este construit folosind variabile, va trebui să fie migrat manual.

Exemplu variabil înainte:

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

Exemplu variabil după:

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

observaţi că variabila şir port nu a fost modificată. Asiguraţi-vă că toate aceste variabile sunt migrate.

Următorul exemplu ilustrează modificări similare aplicat codulului XML.

Codul XML înainte de :

< property name= "java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory/>

< property name= "java.naming.provider.url" value="t3://localhost:7001/

Codul XML după:

< property name= "java.naming.factory.initial" value="com.ibm.websphere.naming.WsnInitialContextFactory"/>

< property name= "java.naming.provider.url" value="corbaloc:iiop:localhost:2809/"/>

Fişiere de proprietăţi

În timp ce instrumentul de migrare verifică fișierele de proprietăți, proprietățile fabricii de nume și ale furnizorului nu sunt migrate printr-o corecție automată. Pentru WebSphere Application Server tradiţional, fie înlăturaţi proprietăţile, fie le modificaţi la valorile de proprietate de numire WebSphere.

Vedeţi şi regula Utilizaţi valorile de proprietate JNDI portabile.