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 :
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(); } |
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.
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.
Lors de la migration vers le serveur WebSphere Application Server Traditional, les propriétés WebLogic mentionnées précédemment sont marquées. Le scanner de source propose un correctif rapide pour les fichiers Java qui remplace les valeurs de propriété de désignation WebLogic par celles qui fonctionnent dans WebSphere Application Server Traditional :
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); } |
Dans le même exemple que précédemment, après l'exécution du correctif rapide Java pour le serveur WebSphere Application Server Traditional, le code est migré, comme suit :
|
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); } |
Remarque : le correctif rapide utilise le port d'amorce par défaut 2809 pour les trois adresses URL, notamment les adresses URL 't3s://' SSL. Vérifiez les paramètres du serveur pour vous assurer que le port correct est utilisé pour chaque URL. Pour plus d'informations, lisez 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().
Avertissement : le correctif rapide n'ajuste que les littéraux. Si une URL est créée avec des variables, elle doit être migrée manuellement.
Exemple de variable avant l'exécution du correctif rapide :|
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); } |
|
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 l'exécution du correctif rapide :|
<property name="java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory"/> <property name="java.naming.provider.url" value="t3://localhost:7001/"/> |
|
<property name="java.naming.factory.initial" value="com.ibm.websphere.naming.WsnInitialContextFactory"/> <property name="java.naming.provider.url" value="corbaloc:iiop:localhost:2809/"/> |
Alors que l'outil de migration vérifie les fichiers de propriétés, les propriétés de désignation de fabrique et de fournisseur ne sont pas migrées par un correctif rapide. 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.