- すべての実装されたインタフェース:
Context
- 直系の既知のサブクラス:
InitialDirContext
public class InitialContext extends Object implements Context
ネーミング操作はすべて、コンテキストを基準にします。 初期コンテキストにはContextインタフェースが実装され、名前を解決する開始点が提供されます。
初期コンテキストが構築されると、コンストラクタに渡される環境パラメータ、および任意のアプリケーション・リソース・ファイルで定義されたプロパティによって環境が初期化されます。
JNDIでは、次の2つのソースから値を順にマージして、各プロパティの値が決定されます。
- コンストラクタ環境パラメータとシステム・プロパティからの最初のプロパティの出現。
-
アプリケーション・リソース・ファイル(
jndi.properties
)。
Context
を参照)、値はすべて1つのコロンで区切られたリストに連結されます。 ほかのプロパティの場合は、検索された最初の値だけが使用されます。
初期コンテキストの実装は、実行時に決定されます。 デフォルトのポリシーでは、初期コンテキスト・ファクトリのクラス名を含む、環境プロパティjava.naming.factory.initial
が使用されます。 このポリシーに対する例外は、次に説明するように、URL文字列を解決するときに作成されます。
名前パラメータとしてURL文字列(scheme_id:rest_of_name形式のString
)がメソッドに渡されると、その方式を処理するURLコンテキスト・ファクトリが検索され、URLの解決に使用されます。 このようなファクトリが見つからない場合は、java.naming.factory.initial
で指定された初期コンテキストが使用されます。 同様に、最初のコンポーネントがURL文字列のCompositeName
オブジェクトが名前パラメータとしてメソッドに渡されると、URLコンテキスト・ファクトリが検索され、最初の名前コンポーネントの解決に使用されます。 URLコンテキスト・ファクトリの配置方法については、NamingManager.getURLContext()
を参照してください。
初期コンテキストおよびURLコンテキスト・ファクトリを検索するデフォルト・ポリシーは、NamingManager.setInitialContextFactoryBuilder()
を呼び出すことでオーバーライドされることがあります。
初期コンテキストをインスタンス化できない場合、NoInitialContextExceptionがスローされます。 この例外は、InitialContextの構築時だけに限らず、InitialContextとの対話中にスローされる可能性があります。 たとえば、初期コンテキストの実装では、実際のメソッドが呼び出される場合だけコンテキストを検索する場合もあります。 アプリケーションは、初期コンテキストの有無が判別される時期に依存しません。
環境プロパティjava.naming.factory.initialがnull以外の場合、InitialContextコンストラクタではそこに指定した初期コンテキストが作成されます。 その時点で問題が発生した場合、関連する初期コンテキスト・ファクトリで例外がスローされます。 ただし、いつ検証されるか、および初期のコンテキスト、環境プロパティ(つまり接続)に関する問題がいつユーザーに表示されるかは、プロバイダの実装に依存します。 コンテキストでオペレーションが実行されるときまで待機する場合も、コンテキスト構築時にすぐに実行する場合もあります。
InitialContextインスタンスは、並行アクセスに対して複数のスレッドでは同期化されません。 異なるInitialContextインスタンスを操作する複数スレッドでは、同期化は必要ありません。 単一のInitialContextに並行してアクセスする必要のあるスレッドは、それ自体で同期化され、必要なロックを提供する必要があります。
- 導入されたバージョン:
- 1.3, JNDI 1.1
- 関連項目:
Context
,NamingManager.setInitialContextFactoryBuilder
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 protected Context
defaultInitCtx
NamingManager.getInitialContext()を呼び出した結果を保持するフィールドです。protected boolean
gotDefault
初期コンテキストがNamingManager.getInitialContext()の呼出しによって取得されたかを示すフィールドです。protected Hashtable<Object,Object>
myProps
このInitialContextに関連した環境です。インタフェース javax.naming.Contextで宣言されたフィールド
APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 InitialContext()
初期コンテキストを構築します。protected
InitialContext(boolean lazy)
初期化しないオプションを持つ初期コンテキストを構築します。InitialContext(Hashtable<?,?> environment)
指定した環境を使用して初期コンテキストを構築します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 String
composeName(String name, String prefix)
このコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。Name
composeName(Name name, Name prefix)
このコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。static <T> T
doLookup(String name)
名前付きオブジェクトを取得するstaticメソッドです。static <T> T
doLookup(Name name)
名前付きオブジェクトを取得するstaticメソッドです。protected Context
getDefaultInitCtx()
NamingManager.getInitialContext()
を呼び出すことによって初期コンテキストを取得し、それをdefaultInitCtx内にキャッシュします。protected Context
getURLOrDefaultInitCtx(String name)
文字列名name
を解決するためのコンテキストを取得します。protected Context
getURLOrDefaultInitCtx(Name name)
name
を解決するためのコンテキストを取得します。protected void
init(Hashtable<?,?> environment)
指定した環境を使用して初期コンテキストを初期化します。クラス java.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
インタフェース javax.naming.Contextで宣言されたメソッド
addToEnvironment, bind, bind, close, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
-
フィールド詳細
-
myProps
このInitialContextに関連した環境です。 nullに初期化され、環境を受け取るコンストラクタ、またはinit()
メソッドによって更新されます。 -
defaultInitCtx
protected Context defaultInitCtxNamingManager.getInitialContext()を呼び出した結果を保持するフィールドです。 最初にgetDefaultInitCtx()が呼び出されたときに、getDefaultInitCtx()によって設定されます。 そのあとgetDefaultInitCtx()を呼び出すと、defaultInitCtxの値が返されます。- 関連項目:
getDefaultInitCtx()
-
gotDefault
protected boolean gotDefault初期コンテキストがNamingManager.getInitialContext()の呼出しによって取得されたかを示すフィールドです。 trueの場合、結果はdefaultInitCtx
にあります。
-
-
コンストラクタの詳細
-
InitialContext
protected InitialContext(boolean lazy) throws NamingException初期化しないオプションを持つ初期コンテキストを構築します。 これは、InitialContext
コンストラクタが呼び出されたときに環境パラメータの値が不明な場合に、サブクラスのコンストラクタで使用されることがあります。 サブクラスのコンストラクタは、このコンストラクタを呼び出し、環境の値を計算してから、値を返す前にinit()
を呼び出します。- パラメータ:
lazy
- trueは、初期コンテキストが初期化されないことを示す。falseは、new InitialContext()
を呼び出すのと同じ- 例外:
NamingException
- ネーミング例外が発生した場合- 導入されたバージョン:
- 1.3
- 関連項目:
init(Hashtable)
-
InitialContext
public InitialContext() throws NamingException初期コンテキストを構築します。 環境プロパティは指定されません。new InitialContext(null)
と同じです。- 例外:
NamingException
- ネーミング例外が発生した場合- 関連項目:
InitialContext(Hashtable)
-
InitialContext
public InitialContext(Hashtable<?,?> environment) throws NamingException指定した環境を使用して初期コンテキストを構築します。 環境プロパティは、クラスの説明に記述されています。このコンストラクタは
environment
を変更したり、その参照を保存したりはしませんが、複製を保存する可能性があります。 呼出し元は、environment
がコンストラクタに渡されたあと、そこに含まれている可変のキーや値を変更してはいけません。- パラメータ:
environment
- 初期コンテキストを作成するために使用される環境。 nullは空の環境を示す。- 例外:
NamingException
- ネーミング例外が発生した場合
-
-
メソッドの詳細
-
init
protected void init(Hashtable<?,?> environment) throws NamingException指定した環境を使用して初期コンテキストを初期化します。 環境プロパティは、クラスの説明に記述されています。このメソッドでは
environment
が変更され、参照が保存されます。 呼出し側では変更されません。- パラメータ:
environment
- 初期コンテキストを作成するために使用される環境。 nullは空の環境を示す。- 例外:
NamingException
- ネーミング例外が発生した場合- 導入されたバージョン:
- 1.3
- 関連項目:
InitialContext(boolean)
-
doLookup
public static <T> T doLookup(Name name) throws NamingException名前付きオブジェクトを取得するstaticメソッドです。 これは、次に相当するショートカット・メソッドです。InitialContext ic = new InitialContext(); Object obj = ic.lookup();
name
が空の場合は、このコンテキストの新しいインスタンスを返します(これは、このコンテキストと同じネーミング・コンテキストを表しますが、その環境を個別に変更したり、同時にアクセスしたりできます)。- 型パラメータ:
T
- 返されたオブジェクトの型- パラメータ:
name
- 検索するオブジェクトの名前- 戻り値:
name
にバインドされたオブジェクト- 例外:
NamingException
- ネーミング例外が発生した場合- 導入されたバージョン:
- 1.6
- 関連項目:
doLookup(String)
,Context.lookup(Name)
-
doLookup
public static <T> T doLookup(String name) throws NamingException名前付きオブジェクトを取得するstaticメソッドです。 詳細は、doLookup(Name)
を参照してください。- 型パラメータ:
T
- 返されたオブジェクトの型- パラメータ:
name
- 検索するオブジェクトの名前- 戻り値:
name
にバインドされたオブジェクト- 例外:
NamingException
- ネーミング例外が発生した場合- 導入されたバージョン:
- 1.6
-
getDefaultInitCtx
protected Context getDefaultInitCtx() throws NamingExceptionNamingManager.getInitialContext()
を呼び出すことによって初期コンテキストを取得し、それをdefaultInitCtx内にキャッシュします。 以前に実行したことがわかるようにgotDefault
を設定します。- 戻り値:
- null以外のキャッシュ済み初期コンテキスト。
- 例外:
NoInitialContextException
- 初期コンテキストが見つからない場合。NamingException
- ネーミング例外が検出された場合。
-
getURLOrDefaultInitCtx
protected Context getURLOrDefaultInitCtx(String name) throws NamingException文字列名name
を解決するためのコンテキストを取得します。name
名がURL文字列の場合は、URLコンテキストを検索します。 見つからなかった場合、またはname
がURL文字列ではない場合は、getDefaultInitCtx()
を返します。サブクラスでこのメソッドがどのように使用されるかは、getURLOrDefaultInitCtx(Name)の説明を参照してください。
- パラメータ:
name
- コンテキストを取得する対象となるnull以外の名前。- 戻り値:
name
のURLコンテキストまたはキャッシュされた初期コンテキスト。 結果はnullではない。- 例外:
NoInitialContextException
- 初期コンテキストが見つからない場合。NamingException
- ネーミング例外が検出された場合。- 関連項目:
NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)
-
getURLOrDefaultInitCtx
protected Context getURLOrDefaultInitCtx(Name name) throws NamingExceptionname
を解決するためのコンテキストを取得します。name
名の最初のコンポーネントがURL文字列の場合は、URLコンテキストを検索します。 見つからなかった場合、またはname
の最初のコンポーネントがURL文字列ではない場合は、getDefaultInitCtx()
を返します。InitialContextのサブクラスを作成するときは、次のようにしてこのメソッドを使用します。 このメソッドを使用する新しいメソッドを定義し、必要なサブクラスの初期コンテキストを取得します。
サブクラスの新しいメソッドに実装を指定する場合は、この新しく定義されたメソッドを使用して、初期コンテキストを取得します。protected XXXContext getURLOrDefaultInitXXXCtx(Name name) throws NamingException { Context answer = getURLOrDefaultInitCtx(name); if (!(answer instanceof XXXContext)) { if (answer == null) { throw new NoInitialContextException(); } else { throw new NotContextException("Not an XXXContext"); } } return (XXXContext)answer; }
public Object XXXMethod1(Name name, ...) { throws NamingException { return getURLOrDefaultInitXXXCtx(name).XXXMethod1(name, ...); }
- パラメータ:
name
- コンテキストを取得する対象となるnull以外の名前。- 戻り値:
name
のURLコンテキストまたはキャッシュされた初期コンテキスト。 結果はnullではない。- 例外:
NoInitialContextException
- 初期コンテキストが見つからない場合。NamingException
- ネーミング例外が検出された場合。- 関連項目:
NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)
-
composeName
public String composeName(String name, String prefix) throws NamingExceptionこのコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。 初期コンテキストは、それ自体以外のコンテキストを基準にして名前を付けられることはないため、prefix
パラメータの値は空の名前(「」)にする必要があります。
- 定義:
composeName
、インタフェース:Context
- パラメータ:
name
- このコンテキストを基準にした名前prefix
- いずれかの上位コンテキストを基準にした、このコンテキストの名前- 戻り値:
prefix
とname
の変換- 例外:
NamingException
- ネーミング例外が発生した場合
-
composeName
public Name composeName(Name name, Name prefix) throws NamingExceptionこのコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。 初期コンテキストは、それ自体以外のコンテキストを基準にして名前を付けられることはないため、prefix
パラメータの値は空の名前にする必要があります。- 定義:
composeName
、インタフェース:Context
- パラメータ:
name
- このコンテキストを基準にした名前prefix
- いずれかの上位コンテキストを基準にした、このコンテキストの名前- 戻り値:
prefix
とname
の変換- 例外:
NamingException
- ネーミング例外が発生した場合- 関連項目:
Context.composeName(String, String)
-