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. În scanerul de sursă, există o corecţie rapidă care modifică valorile proprietăţilor de numire WebLogic la unele 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 exemplul anterior, după rularea corecţiei rapide Java pentru WebSphere Application Server tradiţional, codul va fi migrat aşa 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ă: Corecţia rapidă utilizează portul de bootstrap implicit, 2809, pentru toate URL-urile t3, inclusiv cele 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 Port Number Settings for WebSphere Application Server traditional.

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

Avertisment: Corecţia rapidă ajustează doar literali. Dacă un URL este construit folosind variabile, va trebui să fie migrat manual.

Exemplu de variabilă înainte de corecţia rapidă:

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 de variabilă după de corecţia rapidă:

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.

Cod XML înainte de rularea corecţiei rapide:

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

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

Cod XML după rularea corecţiei rapide:

<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 unealta de migrare verifică fişierele de proprietăţi, proprietăţile de fabrică de numire şi de furnizor nu sunt migrate de corecţia rapidă. 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.