アプリケーションで IntialContext を取得する際に使用された WebLogic 固有の命名プロパティーを削除するか置き換える必要があります。
マイグレーション・ツールは、プロパティー値 weblogic.jndi.WLInitialContextFactory、t3://.*、および t3s://* があるかどうか、Java ファイル、XML ファイル、およびプロパティー・ファイルをスキャンします。
例えば、アプリケーションが以下のプロパティーを指定している場合、ツールは赤のテキストにフラグを立てます。
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", "weblogic.jndi.WLInitialContextFactory"); ht.put("java.naming.provider.url", "t3://localhost:7001"); InitialContext ctx = new InitialContext(ht); } |
以下のように、不要なプロパティーを手動で削除します。
|
import javax.naming.InitialContext; ... void main( String[] args ) { InitialContext ctx = new InitialContext(); } |
Java ファイルにフラグを立てることに加え、ツールは、WebLogic プロパティー値を含む xml ファイルにフラグを立てます。Liberty の場合、デフォルトの InitialContext 初期化値を使用するために、これらのプロパティーを削除する必要があります。
Java ファイルと XML ファイルにフラグを立てることに加え、ツールは、WebLogic プロパティー値を含むプロパティー・ファイルにもフラグを立てます。Liberty の場合、これらのプロパティーを削除する必要があります。
WebSphere Application Server traditional にマイグレーションするとき、前述の同じ WebLogic プロパティーにフラグが立てられます。 ソース・スキャナーには、以下のように、WebLogic 命名プロパティーの値を 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", "weblogic.jndi.WLInitialContextFactory"); ht.put("java.naming.provider.url", "t3s://localhost:7001"); 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"); InitialContext ctx = new InitialContext(ht); } |
注: クイック・フィックスは、SSL の「t3s://」の URL を含む、すべての t3 URL について、デフォルトのブートストラップ・ポート 2809 を使用します。サーバー設定をチェックして、それぞれの URL に対して正しいポートが使用されているか確認してください。追加情報については、 WebSphere Application Server traditional のポート番号設定に関する記事を参照してください。
WebSphere Application Server traditional に移動する際のもう 1 つのオプションは、プロパティーを削除して、空の InitialContext() コンストラクターを使用することです。
注意: クイック・フィックスはリテラルを調整するにすぎません。URL が変数を使用して構築されている場合は、手動でマイグレーションする必要があります。
クイック・フィックス前の変数の例:|
void main( String[] args ) { Hashtable ht = new Hashtable(); ... String port = "7001"; ht.put("java.naming.provider.url", "t3://localhost:" + port); InitialContext ctx = new InitialContext(ht); } |
|
void main( String[] args ) { Hashtable ht = new Hashtable(); ... String port = "7001"; ht.put("java.naming.provider.url", "corbaloc:iiop:localhost:" + port); InitialContext ctx = new InitialContext(ht); } |
ストリング変数 port が変更されなかったことに注意してください。このようなすべての変数を必ずマイグレーションしてください。
以下の例では、XML コードに適用される、類似した変更を示します。
クイック・フィックスを実行する前の XML コード:|
<property name="java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory"/> <property name="java.naming.provider.url" value="t3://localhost:7001/"/> |
|
<property name="java.naming.factory.initial" value="com.ibm.websphere.naming.WsnInitialContextFactory"/> <property name="java.naming.provider.url" value="corbaloc:iiop:localhost:2809/"/> |
マイグレーション・ツールはプロパティー・ファイルを検査するものの、命名ファクトリー・プロパティーおよびプロバイダー・プロパティーはクイック・フィックスによってマイグレーションされません。WebSphere Application Server traditional の場合は、それらのプロパティーを削除するか、それらを WebSphere 命名プロパティーの値に変更してください。
「移植可能な JNDI プロパティーの値を使用する」の規則も参照してください。