オプション: 名前構文を指定します。
INS 構文 は、CORBA アプリケーションとの相互運用が必要な JNDI クライアント用に設計されています。
この構文を使用すると、JNDI クライアントは、CORBA 名との間で正しくマッピングを行うことができます。
INS 構文は、追加の特殊文字であるドット (.) を持つ JNDI 構文と非常によく似ています。
ドットは、名前コンポーネント内の id フィールドと kind フィールドを区切るために使用します。
ドットは、エスケープされると、文字どおりに解釈されます。
名前コンポーネント内で使用できるエスケープされないドットは、1 つだけです。
空でない id フィールドと空の kind フィールドを持つ名前コンポーネントは、
id フィールド値によってのみ表され、エスケープされないドットで終わることはできません。
空の名前コンポーネント (空の id および空の kind フィールド) は、
エスケープされない単一のドットで表されます。
空のストリングは、無効な名前コンポーネント表記です。
JNDI 名前構文 は、デフォルト構文であり、
一般的な JNDI クライアントに適しています。
この構文には、スラッシュ (/) と円記号 (¥) という特殊文字が含まれます。
名前内のコンポーネントは、スラッシュで区切ります。
円記号は、エスケープ文字として使用します。
スラッシュは、エスケープされると (つまり、その前に円記号を置くと) 文字どおりに解釈されます。
同様に、円記号は、エスケープされると文字どおりに解釈されます。
ほとんどの WebSphere アプリケーションは JNDI を使用して EJB オブジェクトを検索するので、
CORBA アプリケーションによってバインドされたオブジェクトを検索する必要はありません。
したがって、JNDI 名に使用されるデフォルトの名前構文が最も便利です。
CORBA アプリケーションによりバインドされたオブジェクトのルックアップを必要とするアプリケーションの場合、
すべての CORBA CosNaming 名を表示できるように名前構文を変更しなければならない可能性があります。
JNDI クライアントは、プロパティーの設定により名前構文を設定できます。
新規 java.naming.InitialContext オブジェクトのインスタンス生成時に、
初期コンテキスト・ファクトリーによってプロパティー設定が適用されます。
初期コンテキストでの JNDI 操作で指定される名前は、
指定された名前構文に従って解析されます。
プロパティーは、次のようにして設定することができます。
- コマンド行から、実際のストリング値を入力します。以下に例を示します。
java -Dcom.ibm.websphere.naming.name.syntax=ins
- 必要なプロパティー設定をしたテキスト・ファイルとして、jndi.properties という
名前のファイルを作成します。以下に例を示します。
...
com.ibm.websphere.naming.name.syntax=ins
...
クラス・ローダーが他のコピーよりも前に jndi.properties のコピーをロードするように、
このファイルをクラスパスの先頭に組み込みます。
- Java プログラムの com.ibm.websphere.naming.PROPS ファイルに定義されている
PROPS.NAME_SYNTAX* Java 定数を使用して設定します。定数の定義内容は以下のとおりです。
public static final String NAME_SYNTAX = "com.ibm.websphere.naming.name.syntax";
public static final String NAME_SYNTAX_JNDI = "jndi";
public static final String NAME_SYNTAX_INS = "ins";
Java プログラムにある以前のプロパティーを使用するためには、
以下のようにして、hashtable にプロパティー設定を追加し、
それを InitialContext コンストラクターに渡します。
java.util.Hashtable env = new java.util.Hashtable();
...
env.put(PROPS.NAME_SYNTAX, PROPS.NAME_SYNTAX_INS); // Set name syntax to INS
...
javax.naming.Context initialContext = new javax.naming.InitialContext(env);