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. A forráselemzőben van egy gyorsjavítás a megjelölt Java fájlokhoz, amely módosítja a JBoss elnevezési tulajdonságértékeket a hagyományos WebSphere Application Server kiszolgálón 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 hagyományos WebSphere Application Server Java gyorsjavításának futtatása után a kód a következőképpen lesz átállítva:


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.

Vegye figyelembe, hogy a forráselemezőben elérhető gyorsjavítás csak akkor lesz alkalmazva, ha az org.jboss.naming lezáró karaktersorozat nélkül van megadva, mint az előző példában. Ha az org.jboss.naming értéket egy további karaktersorozat követi, akkor a szabály meg fogja jelölni az értéket, de nem alkalmazza a gyorsjavítást. Például ez a tulajdonság meg lesz jelölve, de nem lesz módosítva: 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.