Ne pas utiliser les valeurs de propriété JNDI spécifiques à WebLogic ou le protocole t3

Vous devez retirer ou remplacer les propriétés de désignation spécifiques à WebLogic utilisées lors de l'obtention de InitialContext dans votre application. L'outil de migration recherche les valeurs de propriété weblogic.jndi.WLInitialContextFactory, t3://.* et t3s://* dans les fichiers Java, XML et de propriétés. Par exemple, si une application spécifie les propriétés ci-après, l'outil marque le texte en rouge :

Liberty

Fichiers Java

Lorsque vous transférez votre application vers Liberty, ne spécifiez pas d'URL d'usine ou d'URL de fournisseur de contexte initial dans les propriétés transmises au constructeur InitialContext. Utilisez le constructeur vide sauf si d'autres propriétés de désignation sont définies.

L'exemple ci-dessous illustre un code d'application marqué par cette règle lors de la migration vers 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);
}

Retirez manuellement les propriétés inutiles :


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

Fichiers XML

En plus de marquer les fichiers Java, l'outil marque les fichiers xml contenant des valeurs de propriété WebLogic. Pour Liberty, les propriétés doivent être retirées pour que les valeurs d'initialisation InitialContext par défaut soient utilisées.

Fichiers de propriétés

En plus de marquer les fichiers Java et xml, l'outil marque les fichiers de propriétés contenant des valeurs de propriété WebLogic. Pour Liberty, les propriétés doivent être retirées.

WebSphere Application Server Traditional

Fichiers Java

Lors de la migration vers le serveur WebSphere Application Server Traditional, les propriétés WebLogic mentionnées précédemment sont marquées. Un correctif automatisé sera fourni pour les fichiers Java qui modifie les valeurs des propriétés de nommage de WebLogic pour les remplacer par celles qui fonctionnent dans les fichiers traditionnels de WebSphere Application Server :

L'exemple ci-dessous illustre un code d'application marqué par cette règle lors de la migration vers WebSphere Application Server Traditional :


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

En utilisant le même exemple que précédemment, après avoir exécuté la correction automatisée pour WebSphere Application Server traditional, le code sera migré comme indiqué :


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

Note : Le correctif automatisé utilisera le port d'amorçage par défaut, 2809, pour toutes les URL t3, y compris les URL SSL ' t3s:// '. Vérifiez les paramètres du serveur pour vous assurer que le port correct est utilisé pour chaque URL. Pour plus d'informations, voir l'article Paramètres de numéro de port pour WebSphere Application Server Traditional.

Une autre option lors du transfert vers WebSphere Application Server Traditional consiste à retirer les propriétés et à utiliser le constructeur vide InitialContext().

Attention : La correction automatique n'ajustera que les caractères littéraux. Si une URL est créée avec des variables, elle doit être migrée manuellement.

Exemple de variable avant :

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

Exemple de variable après :

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

Notez que la variable de chaîne port n'a pas été modifiée. Assurez-vous que toutes ces variables ont été migrées.

L'exemple ci-dessous illustre les mêmes modifications appliquées au code XML.

Code XML avant :

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

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

Code XML après :

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

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

Fichiers de propriétés

Pendant que l'outil de migration vérifie les fichiers de propriétés, les propriétés de la fabrique de noms et du fournisseur ne sont pas migrées par un correctif automatique. Pour le serveur WebSphere Application Server Traditional, supprimez les propriétés ou modifiez-les pour utiliser les valeurs de propriétés de désignation WebSphere.

Consultez également la règle Utiliser les valeurs de propriété JNDI portables.