Utiliser les propriétés JNDI InitialContext par défaut

Utilisez les valeurs par défaut des propriétés JNDI java.naming.factory.initial et java.naming.provider.url lorsque vous migrez vers Liberty. Les valeurs du serveur WebSphere Application Server Traditional ci-dessous pour ces propriétés ne sont pas valides :

L'outil de migration recherche les propriétés mentionnées précédemment dans les fichiers Java et de propriétés.

Dans les fichiers jndi.properties, les clés de propriété java.naming.factory.initial et java.naming.provider.url sont marquées quelle que soit leur valeur. Si la règle de fichier de propriétés détecte un fichier jndi.properties, vérifiez les propriétés du fichier. Supprimez les propriétés java.naming.factory.initial et java.naming.provider.url ou supprimez le fichier si aucune des propriétés n'est requise.

L'exemple ci-dessous illustre un code d'application marqué par cette règle :


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

Lorsque vous utilisez le constructeur InitialContext(Hashtable), supprimez ces deux propriétés. Si aucune autre propriété n'est utilisée, vous pouvez utiliser le constructeur par défaut.

L'exemple ci-dessous illustre l'utilisation appropriée du code présenté dans l'exemple précédent :


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

Lorsque vous utilisez le constructeur InitialContext(Hashtable), supprimez ces deux propriétés. Si aucune autre propriété n'est utilisée, vous pouvez utiliser le constructeur par défaut.

Cette règle comporte un correctif automatisé pour supprimer ces deux propriétés. Copiez la configuration personnalisée vers votre fichier de génération d'application pour l'activer.

La règle marque également la chaîne com.ibm.websphere.naming.WsnInitialContextFactory, quel que soit son emplacement dans le code Java. Retirez cette chaîne et vérifiez qu'elle n'est pas utilisée au cours de l'initialisation d'InitialContext.