public class NamingManager extends Object
このクラスはインスタンス化できません。このクラスはstaticメソッドだけを持っています。
このクラスのドキュメントのURLの記載は、RFC 1738およびその関連RFCで定義されているURL文字列を指しています。それは、そこで記述されている構文規則に準拠する任意の文字列であり、対応するサポートがjava.net.URLクラスまたはWebブラウザに必ずあるとは限りません。
NamingManagerは、複数のスレッドによる並行アクセスに対して安全です。
別途注釈のある場合を除いて、Nameまたはメソッドに渡される環境パラメータは、呼出し側が所有します。実装はオブジェクトを変更せず、そのオブジェクトに対する参照も保持しませんが、その複製またはコピーに対する参照を保持することがあります。
修飾子と型 | フィールドと説明 |
---|---|
static String |
CPE
getContinuationContext()がそのCannotProceedExceptionパラメータの値を格納する環境プロパティの名前を保持する定数。
|
修飾子と型 | メソッドと説明 |
---|---|
static Context |
getContinuationContext(CannotProceedException cpe)
コンテキスト操作を継続するコンテキストを生成します。
|
static Context |
getInitialContext(Hashtable<?,?> env)
指定された環境プロパティを使って、初期コンテキストを生成します。
|
static Object |
getObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable<?,?> environment)
指定されたオブジェクトおよび環境にオブジェクトのインスタンスを生成します。
|
static Object |
getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment)
オブジェクトのバインディングの状態を取得します。
|
static Context |
getURLContext(String scheme, Hashtable<?,?> environment)
指定されたURLスキームIDにコンテキストを生成します。
|
static boolean |
hasInitialContextFactoryBuilder()
初期コンテキスト・ファクトリ・ビルダーが設定されているかどうかを判定します。
|
static void |
setInitialContextFactoryBuilder(InitialContextFactoryBuilder builder)
InitialContextFactoryビルダーがビルダーであることを指定します。
|
static void |
setObjectFactoryBuilder(ObjectFactoryBuilder builder)
ObjectFactoryBuilderは、オブジェクト・ファクトリをロードする際に使用するポリシーを決定します。
|
public static final String CPE
この定数の値はjava.naming.spi.CannotProceedExceptionです。
getContinuationContext(javax.naming.CannotProceedException)
、定数フィールド値public static void setObjectFactoryBuilder(ObjectFactoryBuilder builder) throws NamingException
ビルダーをインストールできるのは、セキュリティ・マネージャのcheckSetFactory()メソッドが実行中のスレッドにインストールを許可した場合に限ります。一度インストールすると、ビルダーを置き換えることはできません。
builder
- インストールするファクトリ・ビルダー。nullの場合、インストールされるビルダーがない。SecurityException
- セキュリティ上の理由から、ビルダーをインストールできない場合。NamingException
- セキュリティに関連しない理由で、ビルダーをインストールできない場合。IllegalStateException
- ファクトリがすでにインストールされている場合。getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
, ObjectFactory
, ObjectFactoryBuilder
, SecurityManager.checkSetFactory()
public static Object getObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable<?,?> environment) throws Exception
オブジェクト・ファクトリ・ビルダーがインストールされている場合、そのビルダーを使って、オブジェクトを生成するファクトリを生成します。そうでない場合は、次の規則を使用してオブジェクトを生成します。
refInfo
がファクトリ・クラス名を格納するReference
またはReferenceable
である場合、指定されたファクトリを使用してオブジェクトを生成します。ファクトリを生成できない場合はrefInfo
を返します。JDK 1.1では、参照で指定された位置からファクトリ・クラスをロードする必要がある場合、SecurityManagerがインストールされている必要があります。インストールされていない場合、ファクトリ生成は失敗します。ファクトリの生成中に例外が検出された場合、その例外は呼出し側に引き渡されます。
refInfo
を返します。オブジェクトの生成中に例外が検出された場合、その例外は呼出し側に引き渡されます。
DirContextインタフェースを実装しているサービス・プロバイダは、このメソッドではなくDirectoryManager.getObjectInstance()を使うようにします。Contextインタフェースのみを実装するサービス・プロバイダは、このメソッドを使用するようにしてください。
オブジェクト・ファクトリ(ObjectFactoryインタフェースを実装しているオブジェクト)はpublicであることが必要で、また引数を取らないpublicコンストラクタを持つ必要があります。
作成されるオブジェクトの名前を指定するために、オプションでname
パラメータやnameCtx
パラメータを使用できます。name
は、コンテキストnameCtx
を基準にした、オブジェクトの名前です。この情報は、オブジェクト・ファクトリまたはオブジェクト実装に有用な場合があります。オブジェクトを命名できるコンテキストが複数あることもありますが、その場合は呼出し側が選択します。適切な経験則として、使用可能な「もっとも深い」コンテキストを選択することをお薦めします。nameCtx
がnullの場合、name
はデフォルトの初期コンテキストを基準にしています。名前を指定しない場合は、name
パラメータをnullにします。
refInfo
- オブジェクトを作成する対象となるnullの可能性があるオブジェクト。name
- nameCtx
を基準にしたこのオブジェクトの名前。名前の指定はオプション。省略される場合は、name
をnullにする。nameCtx
- name
パラメータが基準にして指定されているコンテキスト。nullの場合、name
はデフォルトの初期コンテキストを基準にする。environment
- オブジェクト・ファクトリとオブジェクトの作成で使用されるnullの可能性がある環境。refInfo
を使って生成されたオブジェクト、または上記のアルゴリズムを使ってオブジェクトを生成できなかった場合はrefInfo
。NamingException
- URLコンテキストを取得するときにネーミング例外が見つかった場合、またはアクセスしたファクトリの1つがNamingExceptionをスローした場合。Exception
- アクセスされたいずれかのファクトリが例外をスローした場合、またはファクトリやオブジェクト・クラスのロード中およびインスタンス化中にエラーが検出された場合。ファクトリは、オブジェクトの作成にほかのファクトリが使用されるようにしたくない場合にのみ例外をスローするようにする。ObjectFactory.getObjectInstance()を参照。getURLContext(java.lang.String, java.util.Hashtable<?, ?>)
, ObjectFactory
, ObjectFactory.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
public static Context getURLContext(String scheme, Hashtable<?,?> environment) throws NamingException
生成されたコンテキストは、スキームscheme
のURLを解決するためのものです。結果のコンテキストは特定のURLに結び付いていません。このコンテキストは指定されたスキームで任意のURLを処理できます。
結果のコンテキストを生成するファクトリのクラス名は、次に指定されるように、パッケージに名前変換scheme-idURLContextFactory (ftpスキームIDであればftpURLContextFactoryなど)を持っています。Context.URL_PKG_PREFIXES環境プロパティ(アプレット・パラメータ、システム・プロパティ、またはアプリケーション・リソース・ファイルから取った値を含む場合がある)は、コロンで区切られたパッケージ接頭辞のリストを格納します。プロパティの各パッケージ接頭辞には、指定された順序でファクトリ・クラスのロードが試みられます。デフォルトのパッケージ接頭辞はcom.sun.jndi.urlです(指定されたパッケージがどれも成功しない場合、このデフォルトが試される)。完全なパッケージ名がパッケージ接頭辞を使って構築され、スキームIDに連結されます。
たとえば、スキームIDがldapでContext.URL_PKG_PREFIXESプロパティがcom.widget:com.wiz.jndiを含む場合、ネーミング・マネージャは次のクラスのロードを試行し、どれか1つをインスタンス化できるまでこれを続けます。
ファクトリがインスタンス化されると、そのインスタンスは次のパラメータで呼び出され、コンテキストを生成します。
factory.getObjectInstance(null, environment);
たとえば、LDAP URLコンテキスト・ファクトリでgetObjectInstance()を上記のように呼び出すと、LDAP URLを解決できるコンテキストが返されます(ldap://ldap.wiz.com/o=wiz,c=us、ldap://ldap.umich.edu/o=umich,c=usなど)。
オブジェクト・ファクトリ(ObjectFactoryインタフェースを実装しているオブジェクト)はpublicであることが必要で、また引数を取らないpublicコンストラクタを持つ必要があります。
scheme
- コンテキストがサポートするURLのnull以外のスキームID。environment
- nullの可能性がある、オブジェクト・ファクトリおよびコンテキストの生成に使用される環境プロパティ。scheme
を使用してURLを解決するコンテキスト。コンテキストを生成するファクトリが検出されない場合はnull
。NamingException
- コンテキストの作成中にネーミング例外が発生した場合。getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
, ObjectFactory.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
public static Context getInitialContext(Hashtable<?,?> env) throws NamingException
InitialContextFactoryBuilderがインストールされている場合、それを使って初期コンテキストを生成するファクトリを生成します。そうでない場合は、Context.INITIAL_CONTEXT_FACTORY環境プロパティで指定されたクラスが使われます。初期コンテキスト・ファクトリ(InitialContextFactoryインタフェースを実装しているオブジェクト)はpublicであることが必要で、また引数を取らないpublicコンストラクタを持っている必要があります。
env
- nullの可能性がある、コンテキストの生成時に使用される環境プロパティ。NoInitialContextException
- Context.INITIAL_CONTEXT_FACTORYプロパティが検出されないか、存在しないクラスまたはインスタンス化できないクラスをこのプロパティが指定した場合、あるいはほかの理由で初期コンテキストを生成できない場合。NamingException
- ほかのネーミング例外が見つかった場合。InitialContext
, InitialDirContext
public static void setInitialContextFactoryBuilder(InitialContextFactoryBuilder builder) throws NamingException
ビルダーをインストールできるのは、実行中のスレッドにセキュリティ・マネージャがインストールを許可した場合に限ります。一度インストールすると、ビルダーを置き換えることはできません。
builder
- インストールする初期コンテキスト・ファクトリ・ビルダー。nullの場合、ビルダーが設定されていない。SecurityException
- セキュリティ上の理由から、ビルダーをインストールできない場合。NamingException
- セキュリティに関連しない理由で、ビルダーをインストールできない場合。IllegalStateException
- ビルダーがすでにインストールされている場合。hasInitialContextFactoryBuilder()
, SecurityManager.checkSetFactory()
public static boolean hasInitialContextFactoryBuilder()
setInitialContextFactoryBuilder(javax.naming.spi.InitialContextFactoryBuilder)
public static Context getContinuationContext(CannotProceedException cpe) throws NamingException
複数の名前空間にまたがる名前で操作を行う場合、1つのネーミング・システムのコンテキストがその操作を次のネーミング・システムに渡す必要があることがあります。コンテキスト実装はこれを行うために、どれだけ処理したかを正確に示す情報を格納するCannotProceedException
を最初に構築します。次に、getContinuationContext
を呼び出すことによって、JNDIから継続コンテキストを取得します。コンテキスト実装は継続コンテキストの同じ操作を呼び出して、まだ解決されていない名前の残りの部分を使ってコンテキスト操作を再開します。
cpeパラメータを使用する前にこのメソッドは、プロパティCPEの値をcpeに設定することによって、そのオブジェクトに関連付けられている環境を更新します。このプロパティは継続コンテキストが継承し、そのコンテキストのサービス・プロバイダがこの例外のフィールドを調べるのに使います。
cpe
- この継続をトリガーしたnull以外の例外。NamingException
- ネーミング例外が発生した場合。public static Object getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment) throws NamingException
DirContextインタフェースを実装しているサービス・プロバイダは、このメソッドではなくDirectoryManager.getStateToBind()を使うようにします。Contextインタフェースのみを実装するサービス・プロバイダは、このメソッドを使用するようにしてください。
このメソッドは、環境プロパティのContext.STATE_FACTORIESプロパティおよびnameCtxに関連したプロバイダ・リソース・ファイルのContext.STATE_FACTORIESプロパティで指定された状態ファクトリを、この順番で使用します。このプロパティの値は、順に試されるファクトリ・クラス名の、コロンで区切られたリストであり、オブジェクトの状態を返すことに成功した最初の値が使用されます。この方法でオブジェクトの状態を何も取得できない場合、オブジェクト自体を返します。状態の取得中に例外が検出された場合、その例外は呼出し側に引き渡されます。
状態ファクトリ(StateFactoryインタフェースを実装しているオブジェクト)はpublicであることが必要で、また引数を取らないpublicコンストラクタを持つ必要があります。
作成されるオブジェクトの名前を指定するために、必要に応じてname
パラメータやnameCtx
パラメータを使用できます。詳細は、ObjectFactory.getObjectInstance()
にある「名前パラメータとコンテキスト・パラメータ」の説明を参照してください。
このメソッドはReferenceableオブジェクトを返すことがあります。このオブジェクトを取得するサービス・プロバイダは、このオブジェクトを直接格納するか、あるいはReferenceable.getReference()を使ってその参照を抽出して代わりにそれを格納するかを選択できます。
obj
- バインドする状態を取得する対象となるnull以外のオブジェクト。name
- nameCtx
を基準にしたこのオブジェクトの名前、または名前が指定されていない場合はnull。nameCtx
- name
パラメータが基準にして指定されているコンテキスト、またはname
がデフォルトの初期コンテキストを基準にしている場合はnull。environment
- 状態ファクトリとオブジェクトの状態の作成で使用されるnullの可能性がある環境。NamingException
- アクセスされたいずれかのファクトリが例外をスローした場合、またはファクトリやオブジェクト・クラスのロード中およびインスタンス化中にエラーが検出された場合。ファクトリは、オブジェクトの作成にほかのファクトリが使用されるようにしたくない場合にのみ例外をスローするようにする。StateFactory.getStateToBind()を参照。StateFactory
, StateFactory.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
, DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.