JBoss 固有の JNDI プロパティーの値を使用しない

アプリケーションで IntialContext を取得する際に使用された JBoss 固有の命名プロパティーを削除するか置き換える必要があります。 マイグレーション・ツールは、プロパティー値 org.jnp.interfaces.NamingContextFactoryjnp://.*、および org.jboss.naming.* があるかどうか、Java ファイルおよびプロパティー・ファイルをスキャンします。 例えば、アプリケーションが以下のプロパティーを指定している場合、ツールは赤のテキストにフラグを立てます。

Liberty

Java ファイル

Liberty にアプリケーションを移動する際に、InitialContext コンストラクターに渡されるプロパティーに初期コンテキスト・ファクトリーやプロバイダー URL を指定しないでください。 他の命名プロパティーを設定中でない限り、空のコンストラクターを使用してください。

以下の例では、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);
}

Liberty の場合、以下のように不要なプロパティーを手動で削除します。


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

プロパティー・ファイル

Java ファイルにフラグを立てることに加え、ツールは、前にリストされた JBoss 固有のプロパティーのプロパティー・ファイルにフラグを立てます。Liberty の場合、ファイルからこれらのプロパティーを削除してください。

WebSphere Application Server traditional

Java ファイル

WebSphere Application Server traditional にマイグレーションするとき、前述の同じ JBoss プロパティーにフラグが立てられます。 ソース・スキャナーには、以下のように、JBoss 命名プロパティーの値を WebSphere Application Server traditional で機能する値に変更する、フラグの立てられた Java ファイル用のクイック・フィックスがあります。

以下の例では、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);
}

前の例を使用した場合、WebSphere Application Server traditional 用の Java クイック・フィックスを実行した後、コードは以下のようにマイグレーションされます。


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

WebSphere Application Server traditional に移動する際のもう 1 つのオプションは、プロパティーを削除して、空の InitialContext() コンストラクターを使用することです。

ソース・スキャナーで使用可能なクイック・フィックスは、上記の例に示されているように、org.jboss.naming が後続ストリングなしで指定されている場合にのみ適用されることに注意してください。org.jboss.naming 値の後に追加のストリングがある場合、規則は値にフラグを立てますが、クイック・フィックスは適用しません。例えば、次のプロパティーは、フラグは立てられますが、変更はされません: java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces


プロパティー・ファイル

Java ファイルにフラグを立てることに加え、ツールは、前にリストされた JBoss 固有のプロパティーのプロパティー・ファイルにフラグを立てます。 WebSphere Application Server traditional の場合は、それらのプロパティーを手動でファイルから削除するか、それらを WebSphere の命名プロパティー値に変更してください。