|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.naming.spi.NamingManager
public class NamingManager
コンテキストオブジェクト、およびネーミングサービスまたはディレクトリサービスの位置情報の参照先オブジェクトを生成するメソッドを格納するクラスです。
このクラスはインスタンス化できません。このクラスは static メソッドだけを持っています。
このクラスのドキュメントの URL の記載は、RFC 1738 およびその関連 RFC で定義されている URL 文字列を適用しています。ドキュメントの URL は RFC 1738 などで述べられている構文に従う文字列であって、必ずしも 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 は、オブジェクトファクトリをロードする際に使用するポリシーを決定します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
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
は nullnameCtx
- name
パラメータの指定に関連するコンテキスト。null の場合、name
はデフォルトの初期コンテキストに関連するenvironment
- オブジェクトファクトリおよびオブジェクトの生成に使用される、null の可能性がある環境
refInfo
を使って生成されたオブジェクト、または上記のアルゴリズムを使ってオブジェクトを生成できなかった場合は refInfo
NamingException
- URL コンテキストを取得するときにネーミング例外が見つかった場合、またはアクセスしたファクトリの 1 つが NamingException をスローした場合
Exception
- アクセスしたファクトリの 1 つが例外をスローした場合、またはファクトリおよびオブジェクトクラスのロードおよびインスタンス化中にエラーが見つかった場合。ファクトリは、オブジェクト生成にほかのファクトリを使用したくない場合に限り例外をスローするようにする。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 以外のスキーマ IDenvironment
- 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
に関連するこのオブジェクトの名前、または名前が指定されない場合は nullnameCtx
- name
パラメータの指定に関連するコンテキスト、または name
がデフォルトの初期コンテキストに関連する場合は nullenvironment
- 状態ファクトリおよびオブジェクトの状態の生成に使用される、null の可能性がある環境
NamingException
- アクセスしたファクトリの 1 つが例外をスローした場合、またはファクトリおよびオブジェクトクラスのロードおよびインスタンス化中にエラーが見つかった場合。ファクトリは、オブジェクト生成にほかのファクトリを使用したくない場合に限り例外をスローするようにする。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)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。