Ne használjon JBoss rendszerre jellemző JNDI tulajdonságértékeket

El kell távolítania vagy le kell cserélnie az alkalmazásban az IntialContext lekérdezésekor használt JBoss-specifikus elnevezési tulajdonságokat. Az átállítási eszköz ellenőrzi a Java és tulajdonságfájlokban a org.jnp.interfaces.NamingContextFactory, jnp://.* és org.jboss.naming.* tulajdonságértékeket. Ha például egy alkalmazás megadja az alábbi tulajdonságokat, akkor az eszköz a vörössel megjelenített szöveget fogja megjelölni:

Liberty

Java fájlok

Amikor áthelyezi az alkalmazást Liberty kiszolgálóra, ne adjon meg kezdeti kontextusgyártót vagy szolgáltató URL címet az InitialContext konstruktornak átadott tulajdonságokban. Használjon egy üres konstruktort, kivéve, ha más elnevezési tulajdonságok is be vannak állítva.

A következő példa olyan alkalmazáskódot mutat be, amelyet ez a szabály meg fog jelöli a Liberty kiszolgálóra való áttéréskor:


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

A Liberty kiszolgálón kézzel távolítsa el a szükségtelen tulajdonságokat:


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

Tulajdonságfájlok

A Java fájlok megjelölésén túl az eszköz megjelöli a tulajdonságfájlokat a korábban felsorolt JBoss-specifikus tulajdonságok esetén. Liberty kiszolgálón eltávolítja ezeket a tulajdonságokat a fájlból.

Hagyományos WebSphere Application Server

Java fájlok

Hagyományos WebSphere Application Serverre történő áttéréskor a korábban említett JBoss tulajdonságok lesznek megjelölve. Egy automatikus javítás megjelöli a Java fájlokat, amelyek megváltoztatják a JBoss címet elnevezési tulajdonságok értékeit a WebSphere Application Server hagyományos fájlokban működő értékekre:

A következő példa olyan alkalmazáskódot mutat be, amelyet ez a szabály meg fog jelöli a hagyományos WebSphere Application Server kiszolgálóra való áttéréskor:


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

A korábban bemutatott példát használva a kód az alábbi módon kerül átmigrálásra:


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

Egy másik lehetőség hagyományos WebSphere Application Server kiszolgálóra való áttéréskor a tulajdonságok eltávolítása és az üres InitialContext() konstruktor használata.

Ha megadják, az automatikus javítás csak akkor kerül alkalmazásra, ha a org.jboss.naming megadása utána lévő karakterlánc nélkül történik ahogy az az előző példában látható. Ha a org.jboss.naming értéket egy további karakterlánc követi, a szabály megjelöli az értéket. Ez a tulajdonság például megjelölésre kerül: java.naming.factory.url.pkgs = org.jboss.naming:org.jnp.interfaces.


Tulajdonságfájlok

A Java fájlok megjelölésén túl az eszköz megjelöli a tulajdonságfájlokat a korábban felsorolt JBoss-specifikus tulajdonságok esetén. Hagyományos WebSphere Application Server esetén kézzel távolítsa el ezeket a tulajdonságokat a fájlból, vagy módosítsa a WebSphere elnevezési tulajdonságértékekre.