Konieczne jest usunięcie lub zastąpienie właściwości nazewnictwa specyficznych dla serwera JBoss, które są używane podczas uzyskiwania obiektu kontekstu początkowego w aplikacji.
Narzędzie migracji skanuje pliki Java i pliki właściwości w poszukiwaniu wartości właściwości: org.jnp.interfaces.NamingContextFactory, jnp://.* i org.jboss.naming.*.
Jeśli na przykład aplikacja określa następujące właściwości, narzędzie będzie oznaczać tekst wyróżniony kolorem czerwonym:
Podczas przenoszenia aplikacji do produktu Liberty nie należy podawać
fabryki kontekstu początkowego ani adresu URL dostawcy w właściwościach
przekazywanych do konstruktora InitialContext.
Należy użyć pustego konstruktora, o ile nie są ustawiane inne właściwości nazewnictwa.
W poniższym przykładzie przedstawiono kod aplikacji, który zostanie oznaczony przez tę regułę podczas migracji do serwera 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); } |
W przypadku serwera Liberty należy ręcznie usunąć zbędne właściwości:
|
import javax.naming.InitialContext; ... void main( String[] args ) { InitialContext ctx = new InitialContext(); } |
Oprócz oznaczania plików Java narzędzie będzie również oznaczać pliki właściwości zawierające właściwości specyficzne dla serwera JBoss, które zostały wymienione wcześniej. W przypadku serwera Liberty należy usunąć te właściwości z pliku.
Podczas migracji do serwera WebSphere Application Server traditional oznaczane są te same właściwości serwera JBoss, które wymieniono wcześniej. W skanerze kodu źródłowego dostępna jest szybka poprawka dla oznaczonych plików Java zmieniająca wartości właściwości nazewnictwa serwera JBoss na wartości, które działają na serwerze WebSphere Application Server traditional:
Poniższy przykład przedstawia kod aplikacji oznaczany przez tę regułę podczas migrowania do serwera 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); } |
Korzystając z wcześniejszego przykładu, po uruchomieniu szybkiej poprawki Java dla serwera WebSphere Application Server traditional kod zostanie zmigrowany w następujący sposób:
|
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); } |
Kolejną opcją, która jest dostępna przy przenoszeniu na serwer WebSphere Application Server traditional,
jest usunięcie właściwości i użycie pustego konstruktora InitialContext().
Należy zauważyć, że szybka poprawka dostępna w skanerze kodu źródłowego zostanie zastosowana tylko wtedy, gdy wartość org.jboss.naming zostanie podana bez łańcucha końcowego, jak to pokazano w powyższym przykładzie. Jeśli po wartości org.jboss.naming wystąpi dodatkowy łańcuch, reguła będzie oznaczać tę wartość, ale nie zastosuje szybkiej poprawki. Na przykład następująca właściwość zostanie oznaczona, ale nie zostanie zmieniona: java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces.
Oprócz oznaczania plików java narzędzie będzie oznaczać pliki właściwości specyficzne dla serwera JBoss wymienione wcześniej. W przypadku serwera WebSphere Application Server traditional należy ręcznie usunąć te właściwości z pliku lub zmienić je na wartości właściwości nazewnictwa produktu WebSphere.