Utilizaţi proprietăţile JNDI InitialContext implicite

Utilizaţi valorile implicite pentru proprietăţile JNDI java.naming.factory.initial şi java.naming.provider.url când migraţi la Liberty. Următoarele valori WebSphere Application Server tradiţional pentru aceste proprietăţi nu sunt valide:

Unealta de migrare scanează fişierele Java şi de proprietăţi pentru proprietăţile menţionate anterior.

În fişierele jndi.properties, cheile de proprietate java.naming.factory.initial şi java.naming.provider.url sunt semnalate indiferent de valoare. Dacă regula pentru fişierul de proprietăţi detectează un fişier jndi.properties, verificaţi proprietăţile din fişierul respectiv. Fie înlăturaţi proprietăţile java.naming.factory.initial şi java.naming.provider.url, fie ştergeţi fişierul dacă niciuna dintre proprietăţi nu este necesară.

Următorul exemplu ilustrează codul de aplicaţie pe care îl va semnala această regulă:


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

Când utilizaţi constructorul InitialContext(Hashtable), înlăturaţi aceste două proprietăţi. Dacă nu sunt utilizate alte proprietăţi, puteţi folosi constructorul implicit.

Următorul exemplu ilustrează utilizarea corectă a codului arătat în exemplul anterior:


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

Când utilizaţi constructorul InitialContext(Hashtable), înlăturaţi aceste două proprietăţi. Dacă nu sunt utilizate alte proprietăţi, puteţi folosi constructorul implicit.

Această regulă are o corecție automată pentru a înlătura aceste două proprietăți. Copiați configurația personalizată pe fișierul de build al aplicației pentru a o activa.

De asemenea, regula va semnala şi com.ibm.websphere.naming.WsnInitialContextFactory oriunde în codul Java. Înlăturaţi acest şir şi verificaţi că nu este utilizat ca parte a iniţializării InitialContext.