Ne pas utiliser de valeurs de propriété JNDI spécifiques à JBoss

Vous devez retirer ou remplacer les propriétés de désignation spécifiques à JBoss utilisées lors de l'obtention de InitialContext dans votre application. L'outil de migration recherche les valeurs de propriété org.jnp.interfaces.NamingContextFactory, jnp://.* et org.jboss.naming.* dans les fichiers Java et les fichiers 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 de fabrique de contexte initial ni d'URL de fournisseur dans les propriétés transmises au constructeur InitialContext. Utilisez un 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", "org.jnp.interfaces.NamingContextFactory");
ht.put("java.naming.provider.url", "jnp://localhost:1099");
ht.put("java.naming.factory.url.pkgs", "org.jboss.naming");

InitialContext ctx = new InitialContext(ht);
}

Pour Liberty, retirez manuellement les propriétés inutiles :


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

Fichiers de propriétés

En plus de marquer les fichiers Java, l'outil marque les fichiers de propriétés pour les propriétés spécifiques à JBoss listées précédemment. Pour Liberty, retirez ces propriétés du fichier.

WebSphere Application Server Traditional

Fichiers Java

Lors de la migration vers le serveur WebSphere Application Server Traditional, les propriétés JBoss mentionnées précédemment sont marquées. Un correctif automatisé signalera les fichiers Java qui modifient les valeurs de la propriété de nommage JBoss aux valeurs de la propriété de nommage qui fonctionnent dans les fichiers traditionnels 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", "org.jnp.interfaces.NamingContextFactory");
ht.put("java.naming.provider.url", "jnp://localhost:1099");
ht.put("java.naming.factory.url.pkgs", "org.jboss.naming");

InitialContext ctx = new InitialContext(ht);
}

En reprenant l'exemple précédent, 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");
ht.put("java.naming.factory.url.pkgs", "com.ibm.ws.naming");

InitialContext ctx = new InitialContext(ht);
}

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

Lorsqu'il est fourni, le correctif automatisé n'est appliqué que lorsque le paramètre org.jboss.naming est spécifié sans la chaîne de caractères de fin comme indiqué dans l'exemple précédent. Si la valeur org.jboss.naming est suivie d'une chaîne de caractères supplémentaire, la règle signalera la valeur. Par exemple, cette propriété sera signalée : java.naming.factory.url.pkgs = org.jboss.naming:org.jnp.interfaces.


Fichiers de propriétés

En plus de marquer les fichiers Java, l'outil marque les fichiers de propriétés pour les propriétés spécifiques à JBoss listées précédemment. Pour WebSphere Application Server Traditional, retirez manuellement ces propriétés du fichier ou associez-les à des valeurs de propriété de désignation WebSphere.