JavaTM 2
Platform
Std. Ed. v1.4.0

javax.naming.ldap
クラス InitialLdapContext

java.lang.Object
  |
  +--javax.naming.InitialContext
        |
        +--javax.naming.directory.InitialDirContext
              |
              +--javax.naming.ldap.InitialLdapContext
すべての実装インタフェース:
Context, DirContext, LdapContext

public class InitialLdapContext
extends InitialDirContext
implements LdapContext

このクラスは、LDAPv3 スタイルの拡張操作および拡張コントロールを実行するための開始コンテキストです。

同期に関する詳細、初期コンテキストの作成方針については、javax.naming.InitialContext および javax.naming.InitialDirContext を参照してください。

要求コントロール

InitialLdapContext である初期コンテキストを作成するときは、要求コントロールのリストを指定できます。リスト内のコントロールは、コンテキスト、またはコンテキストから派生したコンテキストによって実行された暗黙的な LDAP バインド操作のための要求コントロールとして使用されます。これらのコントロールを接続要求コントロールといいます。コンテキストの接続要求コントロールを取得するには、getConnectControls() を使用します。

初期コンテキストコンストラクタに指定された要求コントロールは、検索およびルックアップなどの後続のコンテキスト操作のコンテキスト要求コントロールとしては使用されません。コンテキスト要求コントロールは、setRequestControls() を使って設定および変更されます。

したがって、コンテキストに関連した要求コントロールには、接続要求コントロールとコンテキスト要求コントロールの 2 種類のセットを持つことがあります。このことは、コンテキスト操作と暗黙的な LDAP バインド操作の両方に適用できるクリティカルなコントロールを送る必要のあるアプリケーションには必要です。一般ユーザのプログラムは次のように処理されます。

 InitialLdapContext lctx = new InitialLdapContext(env, critConnCtls);
 lctx.setRequestControls(critModCtls);
 lctx.modifyAttributes(name, mods);
 Controls[] respCtls =  lctx.getResponseControls();
まず、初期コンテキストを作成するために、クリティカルなコントロール (critConnCtls) を指定します。次に、コンテキスト操作のためのコンテキストの要求コントロール (critModCtls) を設定します。理由があって lctx が再度サーバに接続する必要がある場合は、critConnCtls を使用します。要求コントロールについての詳細は LdapContext インタフェースを参照してください。

実装の詳細については、実装側であるサービスプロバイダは、LdapContext クラスの「サービスプロバイダ」セクションを熟読してください。

導入されたバージョン:
1.3
関連項目:
LdapContext, InitialContext, InitialDirContext, NamingManager.setInitialContextFactoryBuilder(javax.naming.spi.InitialContextFactoryBuilder)

フィールドの概要
 
クラス javax.naming.InitialContext から継承したフィールド
defaultInitCtx, gotDefault, myProps
 
インタフェース javax.naming.ldap.LdapContext から継承したフィールド
CONTROL_FACTORIES
 
インタフェース javax.naming.directory.DirContext から継承したフィールド
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
 
インタフェース 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
 
コンストラクタの概要
InitialLdapContext()
          環境プロパティまたは接続要求コントロールを使用しないで、初期コンテキストを構築します。
InitialLdapContext(Hashtable environment, Control[] connCtls)
          環境プロパティおよび接続要求コントロールを使用して、初期コンテキストを構築します。
 
メソッドの概要
 ExtendedResponse extendedOperation(ExtendedRequest request)
          拡張操作を実行します。
 Control[] getConnectControls()
          このコンテキストに有効な接続要求コントロールを検出します。
 Control[] getRequestControls()
          このコンテキストに有効な要求コントロールを検出します。
 Control[] getResponseControls()
          このコンテキストで最後に呼び出されたメソッドの結果として生成された応答コントロールを検出します。
 LdapContext newInstance(Control[] reqCtls)
          このコンテキストの新しいインスタンスを要求コントロールを使って生成します。
 void reconnect(Control[] connCtls)
          指定されたコントロールとこのコンテキスト環境を使って LDAP サーバに再接続します。
 void setRequestControls(Control[] requestControls)
          このコンテキストで引き続き呼び出されるメソッドに要求コントロールを設定します。
 
クラス javax.naming.directory.InitialDirContext から継承したメソッド
bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search
 
クラス javax.naming.InitialContext から継承したメソッド
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getDefaultInitCtx, getEnvironment, getNameInNamespace, getNameParser, getNameParser, getURLOrDefaultInitCtx, getURLOrDefaultInitCtx, init, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース javax.naming.directory.DirContext から継承したメソッド
bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search
 
インタフェース javax.naming.Context から継承したメソッド
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
 

コンストラクタの詳細

InitialLdapContext

public InitialLdapContext()
                   throws NamingException
環境プロパティまたは接続要求コントロールを使用しないで、初期コンテキストを構築します。new InitialLdapContext(null, null) と同等です。

例外:
NamingException - ネーミング例外が発生した場合

InitialLdapContext

public InitialLdapContext(Hashtable environment,
                          Control[] connCtls)
                   throws NamingException
環境プロパティおよび接続要求コントロールを使用して、初期コンテキストを構築します。環境プロパティについては、javax.naming.InitialContext を参照してください。

このコンストラクタでは、パラメータの変更または参照の保存は行われませんが、複製またはコピーが保存されます。

connCtls は、基となるコンテキストインスタンスの接続要求コントロールとして使用されます。詳細は、クラスの記述を参照してください。

パラメータ:
environment - 初期 DirContext の作成に使用される環境。null は空の環境を示す
connCtls - 初期コンテキストの接続要求コントロール。null の場合、接続要求コントロールは使用されない
例外:
NamingException - ネーミング例外が発生した場合
関連項目:
reconnect(javax.naming.ldap.Control[]), LdapContext.reconnect(javax.naming.ldap.Control[])
メソッドの詳細

extendedOperation

public ExtendedResponse extendedOperation(ExtendedRequest request)
                                   throws NamingException
インタフェース LdapContext の記述:
拡張操作を実行します。このメソッドを使用して、LDAPv3 拡張操作をサポートします。

定義:
インタフェース LdapContext 内の extendedOperation
パラメータ:
request - 実行する null 以外の要求
戻り値:
null の可能性がある操作の応答。null は、操作をしても応答は何も生成されないことを示す
例外:
NamingException - 拡張操作実行中に、エラーが発生した場合

newInstance

public LdapContext newInstance(Control[] reqCtls)
                        throws NamingException
インタフェース LdapContext の記述:
このコンテキストの新しいインスタンスを要求コントロールを使って生成します。このメソッドは、マルチスレッドのアクセスのためにこのコンテキストインスタンスを新たに作成する便利な手法です。たとえば、複数のスレッドがそれぞれ異なるコンテキスト要求コントロールを使用したい場合、各スレッドは、他のスレッドと同期する必要なく、このメソッドを使用して、このコンテキストのその独自のコピーを取得して、コンテキスト要求コントロールを設定または取得できます。

新規コンテキストには、このコンテキストと同じ環境プロパティ、接続要求コントロールがあります。詳細については、クラスについての記述を参照してください。このコンテキストと新規コンテキストの間で、同じネットワーク接続またはその他のリソースを共有することもできます。ただし、各コンテキストの間で競合が発生する場合は、共有できません。

定義:
インタフェース LdapContext 内の newInstance
パラメータ:
reqCtls - 新しいコンテキストに使用する null の可能性がある要求コントロール。null の場合は、要求コントロールを使用しないで初期化される
戻り値:
null 以外の LdapContext インスタンス
例外:
NamingException - 新規インスタンスの作成中に、エラーが発生した場合
関連項目:
InitialLdapContext

reconnect

public void reconnect(Control[] connCtls)
               throws NamingException
インタフェース LdapContext の記述:
指定されたコントロールとこのコンテキスト環境を使って LDAP サーバに再接続します。

このメソッドは、LDAP のバインド操作を明示的に初期化する方法です。このメソッドを使って、LDAP バインド操作に要求コントロールを設定したり、またはその操作によって返される応答コントロールを取得するために明示的にサーバに接続できます。

このメソッドでは、このコンテキストの connCtls を新規接続要求コントロールとなるように設定します。このコンテキストのコンテキスト要求コントロールは影響を受けません。このメソッドが呼び出されると、その後に続く暗黙的な再接続が connCtls を使用して実行されます。connCtls はまた、接続要求コントロールとして、このコンテキストから派生した新規コンテキストインスタンスにも使用されます。これらの接続要求コントロールは、setRequestControls() の影響を受けません。

実装の詳細については、実装側であるサービスプロバイダは、クラスの「サービスプロバイダ」セクションをよく読んでください。

定義:
インタフェース LdapContext 内の reconnect
パラメータ:
connCtls - null の可能性がある使用するためのコントロール。null の場合、コントロールは使用されない
例外:
NamingException - 再接続中にエラーが発生した場合
関連項目:
LdapContext.getConnectControls(), LdapContext.newInstance(javax.naming.ldap.Control[])

getConnectControls

public Control[] getConnectControls()
                             throws NamingException
インタフェース LdapContext の記述:
このコンテキストに有効な接続要求コントロールを検出します。コントロールは、JNDI 実装が所有していて、不変です。配列、コントロールのどちらも呼び出し側は変更できません。

定義:
インタフェース LdapContext 内の getConnectControls
戻り値:
null の可能性があるコントロールの配列。null は、このコンテキストに対してコントロールが設定されていないことを示す
例外:
NamingException - 要求コントロールの取得中に、エラーが発生した場合

setRequestControls

public void setRequestControls(Control[] requestControls)
                        throws NamingException
インタフェース LdapContext の記述:
このコンテキストで引き続き呼び出されるメソッドに要求コントロールを設定します。この要求コントロールは、JNDI 実装が所有していて、不変です。配列、コントロールのどちらも呼び出し側は変更できません。

以前の要求コントロールをすべて削除し、引き続きこのコンテキストで呼び出されるメソッドが使用するために requestControls を追加します。

requestControls は、次に setRequestControls() を呼び出すまで有効です。これ以上コンテキストメソッドに影響を与えたくない場合は、コントロールを解除するために、null または空の配列を持つ setRequestControls() を明示的に呼び出す必要があります。このコンテキストにはどの要求コントロールが効果的なのか確認するには、getRequestControls() を使用します。

定義:
インタフェース LdapContext 内の setRequestControls
パラメータ:
requestControls - null の可能性がある使用するためのコントロール。null の場合、コントロールは使用されない
例外:
NamingException - 要求コントロールの設定中に、エラーが発生した場合
関連項目:
LdapContext.getRequestControls()

getRequestControls

public Control[] getRequestControls()
                             throws NamingException
インタフェース LdapContext の記述:
このコンテキストに有効な要求コントロールを検出します。この要求コントロールは、JNDI 実装が所有していて、不変です。配列、コントロールのどちらも呼び出し側は変更できません。

定義:
インタフェース LdapContext 内の getRequestControls
戻り値:
null の可能性があるコントロールの配列。null は、このコンテキストに対して要求コントロールが設定されていないことを示す
例外:
NamingException - 要求コントロールの取得中に、エラーが発生した場合
関連項目:
LdapContext.setRequestControls(javax.naming.ldap.Control[])

getResponseControls

public Control[] getResponseControls()
                              throws NamingException
インタフェース LdapContext の記述:
このコンテキストで最後に呼び出されたメソッドの結果として生成された応答コントロールを検出します。この応答コントロールは、JNDI 実装が所有していて、不変です。配列、コントロールのどちらも呼び出し側は変更できません。

これらの応答コントロールには、正常に終了した操作または失敗した操作によって生成されたものがあります。

応答コントロールを返すことができるコンテキストメソッドが呼び出されると、以前のメソッド呼び出しからの応答コントロールはすべて解除されます。getResponseControls() は、LDAP サーバから受け取った順序で、コンテキストメソッドが操作した LDAP によって生成される応答コントロールのすべてを返します。getResponseControls() を呼び出すと、以前の応答コントロールは解除されません。コントロールを返すことができる次のコンテキストメソッドが呼び出されるまで何度でも呼び出したり、同じコントロールを戻すことが可能です。

定義:
インタフェース LdapContext 内の getResponseControls
戻り値:
null の可能性があるコントロールの配置。null の場合、このコンテキストで呼び出された以前のメソッドはコントロールを生成しない
例外:
NamingException - 応答コントロールの取得中に、エラーが発生した場合

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.