Nepoužívat hodnoty vlastností JNDI specifické pro JBoss

Musíte odebrat nebo nahradit vlastnosti pojmenování specifické pro JBoss používané při získávání kontextu IntialContext v aplikaci. Nástroj migrace prochází soubory Java a soubory vlastnosti pro hodnoty vlastností: org.jnp.interfaces.NamingContextFactory, jnp://.* a org.jboss.naming.*. Pokud například aplikace zadá následující vlastnosti, označí tento nástroj červený text:

Liberty

Soubory Java

Při přesunu aplikace na server Liberty nezadávejte počáteční kontextovou továrnu nebo adresu URL poskytovatele do vlastností předaných konstruktoru InitialContext. Použijte prázdný konstruktor, dokud nejsou nastaveny jiné vlastnosti pojmenování.

Následující příklad ilustruje kód aplikace, který toto pravidlo označí při migraci na server 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);
}

Pro server Liberty ručně odeberte nepotřebné vlastnosti:


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

Soubory vlastností

Kromě označení souborů java bude nástroj označovat soubory vlastností pro vlastnosti specifické pro JBoss uvedené dříve. V případě serveru Liberty odeberte tyto vlastnosti ze souboru.

WebSphere Application Server traditional

Soubory Java

Při přechodu na WebSphere Application Server traditional budou označeny stejné vlastnosti JBoss, které byly zmíněny dříve. Automatická oprava označí soubory Java, které mění JBoss hodnoty pojmenovacích vlastností na hodnoty, které fungují v tradičním WebSphere Application Server :

Následující příklad ilustruje kód aplikace, který toto pravidlo označí při migraci na server 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);
}

Na základě dříve uvedeného příkladu bude kód migrován podle obrázku:


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

Jinou možností při přesunu na server WebSphere Application Server traditional je odebrání vlastností a použití prázdného konstruktoru InitialContext().

Pokud je automatická oprava poskytnuta, použije se pouze tehdy, když je org.jboss.naming zadána bez koncového řetězce jak je uvedeno v předchozím příkladu. Pokud org.jboss.naming následuje další řetězec, pravidlo tuto hodnotu označí. Například tato vlastnost bude označena: java.naming.factory.url.pkgs = org.jboss.naming:org.jnp.interfaces.


Soubory vlastností

Kromě označování souborů java nástroj označí soubory vlastností pro specifické vlastnosti systému JBoss uvedené dříve. Pro server WebSphere Application Server traditional ručně odeberte tyto vlastnosti ze souboru, nebo je změňte na hodnoty vlastností pojmenování WebSphere.