モジュール java.naming
パッケージ javax.naming

インタフェースContext

既知のすべてのサブインタフェース:
DirContext, EventContext, EventDirContext, LdapContext
既知のすべての実装クラス:
InitialContext, InitialDirContext, InitialLdapContext

public interface Context
このインタフェースは、名前からオブジェクトへのバインディングのセットから構成されるネーミング・コンテキストを表します。 このインタフェースには、これらのバインディングを検査および更新するメソッドが含まれています。

名前

Contextメソッドに引数として渡される各名前は、そのコンテキストに対して相対的です。 コンテキスト自体を指定する場合は、空の名前が使用されます。 名前パラメータはnullにできません。

ほとんどのメソッドには、NameパラメータおよびStringを使用するオーバーロードされたバージョンがあります。 これらのオーバーロードされたバージョンは、NameパラメータとStringパラメータが単に同じ名前の異なる表現である場合に、同じメソッドのオーバーロードされたバージョンが同じように動作するという点で同等です。 以下のメソッドの説明では、1つのバージョンだけが完全にドキュメント化されています。 2番目のバージョンには、最初のバージョンへのリンクがあり、同じドキュメントが両方に適用されます。

フェデレーションをサポートするシステムの場合、ContextメソッドのString名前引数はコンポジット名です。 CompositeNameのインスタンスである名前引数はコンポジット名として扱われ、CompositeNameのインスタンスではないName引数は複合名(CompoundNameのインスタンス、または複合名のその他の実装である場合があります)として扱われます。 これにより、NameParser.parse()の結果をContextメソッドの引数として使用できます。 JNDI 1.2以前は、すべての名前引数が合成名とみなされていました。

さらに、フェデレーションをサポートするシステムでは、list()およびlistBindings()からNamingEnumerationで返されるすべての名前は、文字列として表されるコンポジット名です。 名前の文字列構文については、CompositeNameを参照してください。

フェデレーションをサポートしていないシステムの場合、名前引数(NameまたはStringフォーム)およびNamingEnumerationで返される名前は、サービス・プロバイダの判断で、コンポジット・ネームスペースの名前ではなく、独自のネームスペースの名前にすることができます。

例外

このインタフェースのすべてのメソッドは、NamingExceptionまたはそのサブクラスをスローできます。 各例外の詳細は、NamingExceptionとそのサブクラスを参照してください。

並行アクセス

Contextインスタンスは、複数のスレッドによる並行アクセスに対して同期することは保証されていません。 単一のContextインスタンスに並行してアクセスする必要のあるスレッドは、それらのスレッド間で同期化し、必要なロックをする必要があります。 異なるContextインスタンスを操作する複数スレッドは、同期化される必要はありません。 lookupメソッドは、空の名前を渡すと、同じネーミング・コンテキストを表す新しいコンテキスト・インスタンスを返します。

同時実行性制御のために、NamingEnumerationを返すコンテキスト操作は、列挙がまだ使用中であるか、その操作によって生成された参照がまだ実行中である間は完了したとみなされません。

パラメータ

Contextインタフェースまたはそのサブインタフェースのいずれのメソッドにも渡されるNameパラメータは、サービス・プロバイダによって変更されません。 サービス・プロバイダでは、メソッドの結果の列挙、および生成された参照の処理を含むオペレーションの間に、そこへの参照が保持されます。 呼出し側は、この間にオブジェクトを変更することはできません。 そのようなメソッドから返されるNameは、コール元によって所有されます。 呼出し側はその後このオブジェクトを変更できますが、サービス・プロバイダは変更できません。

環境プロパティ

JNDIアプリケーションでは、ネーミング・サービスとディレクトリ・サービスからアクセスされる環境を定義する、さまざまな設定やプロパティを伝達する方法が必要とされます。 たとえば、あるコンテキストでは、サービスにアクセスするためにセキュリティ資格の指定が必要になります。 別のコンテキストでは、サーバー構成情報を指定する必要があります。 これらは、コンテキストの環境と呼ばれます。 Contextインタフェースには、この環境を取得および更新するためのメソッドが用意されています。

環境は、コンテキスト・メソッドがあるコンテキストから次のコンテキストに進むにつれて、親コンテキストから継承されます。 1つのコンテキストの環境を変更しても、その他のコンテキストの環境には直接影響しません。

環境プロパティの使用、または有効性の検査、あるいはその両方がいつ行われるかは、実装に依存します。 たとえば、ディレクトリに「ログイン」するために、サービス・プロバイダでセキュリティ関連のプロパティが使用されるとします。 このログイン・プロセスは、コンテキストが作成されたとき、またはコンテキストでメソッドが最初に呼び出されたときに発生します。 これがいつ発生するか、および発生するかどうかは、実装に依存します。 コンテキストに対して環境プロパティの追加または削除が行われたときに、変更の有効性の検査が行われるタイミングも、実装に依存します。 たとえば、あるプロパティの検査は、変更が行われたとき、またはコンテキストで次のオペレーションが実行されたときに行われるか、あるいはまったく行われません。

コンテキストへの参照を含むオブジェクトでは、そのコンテキストの環境が検査されます。 クリアテキストのパスワードなどの重要な情報は、実装で保護されているかどうかがわからない場合には、保存しないでください。

リソース・ファイル

JNDIアプリケーションで必要な環境を設定するタスクを簡単にするために、アプリケーション・コンポーネントとサービス・プロバイダがリソース・ファイルとともに分配されることがあります。 JNDIリソース・ファイルは、キー/バリューのペアのリストを含むプロパティ・ファイル形式(java.util.Propertiesを参照してください)のファイルです。 キーはプロパティの名前(java.naming.factory.objectなど)で、値はそのプロパティに定義された形式の文字列です。 次に、JNDIリソース・ファイルの例を示します。

java.naming.factory.object=com.sun.jndi.ldap.AttrsToCorba:com.wiz.from.Person java.naming.factory.state=com.sun.jndi.ldap.CorbaToAttrs:com.wiz.from.Person java.naming.factory.control=com.sun.jndi.ldap.ResponseControlFactory
JNDIクラス・ライブラリでは、リソース・ファイルを読み込み、プロパティ値を自由に使用できるようにします。 JNDIリソース・ファイルは、不特定のユーザーが読み込む可能性があります。クリアテキストのパスワードなどの重要な情報は、ここに保存しないでください。

JNDIリソース・ファイルには、プロバイダおよびアプリケーションの2種類があります。

プロバイダ・リソース・ファイル

各サービス・プロバイダには、そのプロバイダに固有のプロパティをリストに表示するオプションのリソースがあります。 このリソースの名前は次のようになります。
[prefix/]jndiprovider.properties
ここで、prefixはプロバイダのコンテキスト実装のパッケージ名であり、各ピリオド(「.」)はスラッシュ(「/」)に変換されます。 たとえば、サービス・プロバイダがcom.sun.jndi.ldap.LdapCtxというクラス名を持つコンテキスト実装を定義するとします。 このプロバイダのプロバイダ・リソースには、com/sun/jndi/ldap/jndiprovider.propertiesという名前が付けられます。 クラスがパッケージに含まれていない場合、リソースの名前は単にjndiprovider.propertiesです。

JNDIクラス・ライブラリの特定のメソッドでは、JNDIファクトリのリストを指定する標準JNDIプロパティが使用されます。

  • java.naming.factory.object
  • java.naming.factory.state
  • java.naming.factory.control
  • java.naming.factory.url.pkgs
JNDIライブラリでは、これらのプロパティの値を決定するときに、プロバイダ・リソース・ファイルが参照されます。 これ以外のプロパティは、サービス・プロバイダの判断により、プロバイダ・リソース・ファイルで設定されます。 サービス・プロバイダのドキュメントでは、使用可能なプロパティが明示される必要があります。ファイルのその他のプロパティは無視されます。

アプリケーション・リソース・ファイル

アプリケーションが配置される場合、通常はclasspathに複数のコードベース・ディレクトリおよびJARがあります。 JNDIは、クラスパス内でjndi.propertiesという名前のすべての「アプリケーション・リソース・ファイル」を(ClassLoader.getResources()を使用して)として検出します。 また、Javaインストール・ディレクトリに組込みプロパティ・ファイル(通常はconf/jndi.properties)が含まれている場合、JNDIはそれを追加のアプリケーション・リソース・ファイルとして扱います。 これらのファイルに含まれるプロパティはすべて、初期コンテキストの環境に配置されます。 この環境は、他のコンテキストに継承されます。

1つ以上のアプリケーション・リソース・ファイルにあるプロパティの場合、JNDIでは検索された最初の値が使用されるか、または意味がある場合に限り、すべての値が連結されます(詳細は次に示します)。 たとえば、"java.naming.factory.object"プロパティが3つのjndi.propertiesリソース・ファイルで見つかった場合、オブジェクト・ファクトリのリストは、3つすべてのファイルのプロパティ値を連結したものです。 この方式を使用すると、配置可能なコンポーネントのそれぞれで、エクスポートするファクトリがリスト表示されます。 JNDIでは、ファクトリ・クラスを検索するときに、これらのエクスポート・リストがすべて収集および使用されます。

プロパティの検索アルゴリズム

JNDIが初期コンテキストを構築する場合、コンテキストの環境は、コンストラクタ、システム・プロパティおよびアプリケーション・リソース・ファイルに渡される環境パラメータで定義されたプロパティを使用して初期化されます。 詳細については、InitialContextを参照してください。 この初期環境は、ほかのコンテキスト・インスタンスで継承されます。

JNDIクラス・ライブラリでプロパティの値を決定する必要がある場合は、次の2つのソースから値を順にマージして実行します。

  1. 生成されるコンテキストの環境。
  2. 操作中のコンテキストのプロバイダ・リソース・ファイル(jndiprovider.properties)。
この2つのソースのプロパティについて、JNDIではプロパティの値が次のように決定されます。 プロパティが、JNDIファクトリのリストを指定する標準JNDIプロパティの1つの場合(上記にリスト表示されている)、値は1つのコロンで区切られたリストに連結されます。 ほかのプロパティの場合は、検索された最初の値だけが使用されます。

サービス・プロバイダでプロパティの値を決定する必要がある場合、通常は環境から値が直接取得されます。 サービス・プロバイダは、独自のプロバイダ・リソース・ファイルに配置される、プロバイダ固有のプロパティを定義できます。 その場合は、前の段落で説明した値をマージする必要があります。

このように、各サービス・プロバイダの開発者は、そのサービス・プロバイダで使用するファクトリのリストを指定できます。 これらは、アプリケーションのデプロイヤによって指定されたアプリケーション・リソースによって変更でき、ユーザーが変更できます。

導入されたバージョン:
1.3
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final String
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    この名前の環境プロパティは、初期コンテキストを構築する際に無視されます。
    static final String
    要求されたサービスの権限を指定するための、環境プロパティの名前を保持する定数です。
    static final String
    サービスのプロトコルによってデータを返すときに使用するバッチ・サイズを指定するための、環境プロパティの名前を保持する定数です。
    static final String
    JNDI URLコンテキスト(dns://somehost/wiz.comなど)に使用するDNSホスト名およびドメイン名を指定するための、環境プロパティの名前を保持する定数です。
    static final String
    使用する初期コンテキスト・ファクトリを指定するための、環境プロパティの名前を保持する定数です。
    static final String
    サービスに使用する優先言語を指定するための、環境プロパティの名前を保持する定数です。
    static final String
    使用するオブジェクト・ファクトリのリストを指定するための、環境プロパティの名前を保持する定数です。
    static final String
    使用するサービス・プロバイダの構成情報を指定するための、環境プロパティの名前を保持する定数です。
    static final String
    サービス・プロバイダによって参照が処理される方法を指定するための、環境プロパティの名前を保持する定数です。
    static final String
    使用するセキュリティ・レベルを指定するための、環境プロパティの名前を保持する定数です。
    static final String
    サービスに対する呼出し側を認証する主体の資格を指定するための、環境プロパティの名前を保持する定数です。
    static final String
    サービスに対する呼出し側を認証する主体の識別情報を指定するための、環境プロパティの名前を保持する定数です。
    static final String
    使用するセキュリティ・プロトコルを指定するための、環境プロパティの名前を保持する定数です。
    static final String
    使用する状態ファクトリのリストを指定するための、環境プロパティの名前を保持する定数です。
    static final String
    URLコンテキスト・ファクトリをロードするときに使用するパッケージ接頭辞のリストを指定するための、環境プロパティの名前を保持する定数です。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    addToEnvironment(String propName, Object propVal)
    このコンテキストの環境に、新しい環境プロパティを追加します。
    void
    bind(String name, Object obj)
    名前をオブジェクトにバインドします。
    void
    bind(Name name, Object obj)
    名前をオブジェクトにバインドします。
    void
    このコンテキストを閉じます。
    composeName(String name, String prefix)
    このコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。
    composeName(Name name, Name prefix)
    このコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。
    新しいコンテキストを作成してバインドします。
    新しいコンテキストを作成してバインドします。
    void
    名前付きコンテキストを破棄し、名前空間から削除します。
    void
    名前付きコンテキストを破棄し、名前空間から削除します。
    このコンテキストで有効な環境を取得します。
    独自の名前空間でこのコンテキストの完全な名前を取得します。
    名前付きコンテキストに関連したパーサーを取得します。
    名前付きコンテキストに関連したパーサーを取得します。
    list(String name)
    バインドされたオブジェクトのクラス名とともに、名前付きコンテキストでバインドされた名前を列挙します。
    list(Name name)
    バインドされたオブジェクトのクラス名とともに、名前付きコンテキストでバインドされた名前を列挙します。
    バインドされたオブジェクトとともに、名前付きコンテキストでバインドされた名前を列挙します。
    バインドされたオブジェクトとともに、名前付きコンテキストでバインドされた名前を列挙します。
    lookup(String name)
    名前付きオブジェクトを取得します。
    lookup(Name name)
    名前付きオブジェクトを取得します。
    名前の終端の基本コンポーネントを除くリンクをともなう、名前付きオブジェクトを取得します。
    名前の終端の基本コンポーネントを除くリンクをともなう、名前付きオブジェクトを取得します。
    void
    rebind(String name, Object obj)
    名前をオブジェクトにバインドし、既存のバインディングを上書きします。
    void
    rebind(Name name, Object obj)
    名前をオブジェクトにバインドし、既存のバインディングを上書きします。
    このコンテキストの環境から環境プロパティを削除します。
    void
    rename(String oldName, String newName)
    新しい名前を、以前の名前にバインドされたオブジェクトにバインドし、以前の名前をアンバインドします。
    void
    rename(Name oldName, Name newName)
    新しい名前を、以前の名前にバインドされたオブジェクトにバインドし、以前の名前をアンバインドします。
    void
    unbind(String name)
    名前付きオブジェクトをアンバインドします。
    void
    unbind(Name name)
    名前付きオブジェクトをアンバインドします。
  • フィールド詳細

    • INITIAL_CONTEXT_FACTORY

      static final String INITIAL_CONTEXT_FACTORY
      使用する初期コンテキスト・ファクトリを指定するための、環境プロパティの名前を保持する定数です。 プロパティの値は、初期コンテキストを作成するファクトリ・クラスの完全指定クラス名である必要があります。 このプロパティは、初期コンテキスト・コンストラクタ、システム・プロパティまたはアプリケーション・リソース・ファイルに渡される環境パラメータで指定できます。 これらのソースのいずれにも指定されていない場合は、操作を完了するために初期コンテキストが必要なときにNoInitialContextExceptionがスローされます。

      この定数の値は"java.naming.factory.initial"です。

      関連項目:
    • OBJECT_FACTORIES

      static final String OBJECT_FACTORIES
      使用するオブジェクト・ファクトリのリストを指定するための、環境プロパティの名前を保持する定数です。 プロパティの値は、指定されたオブジェクト情報からオブジェクトを生成する、ファクトリ・クラスの完全指定クラス名のコロンで区切られたリストである必要があります。 このプロパティは、環境、システム・プロパティ、または1つ以上のリソース・ファイルで指定できます。

      この定数の値は"java.naming.factory.object"です。

      関連項目:
    • STATE_FACTORIES

      static final String STATE_FACTORIES
      使用する状態ファクトリのリストを指定するための、環境プロパティの名前を保持する定数です。 プロパティの値は、指定されたオブジェクトの状態を取得するために使用される、状態ファクトリ・クラスの完全指定クラス名のコロンで区切られたリストである必要があります。 このプロパティは、環境、システム・プロパティ、または1つ以上のリソース・ファイルで指定できます。

      この定数の値は"java.naming.factory.state"です。

      導入されたバージョン:
      1.3
      関連項目:
    • URL_PKG_PREFIXES

      static final String URL_PKG_PREFIXES
      URLコンテキスト・ファクトリをロードするときに使用するパッケージ接頭辞のリストを指定するための、環境プロパティの名前を保持する定数です。 プロパティの値は、URLコンテキスト・ファクトリを作成するファクトリ・クラスのクラス名に対する、パッケージ接頭辞のコロンで区切られたリストである必要があります。 このプロパティは、環境、システム・プロパティ、または1つ以上のリソース・ファイルで指定できます。 プレフィクスcom.sun.jndi.urlは、パッケージ・プレフィクスの空のリストに常に追加されます。

      この定数の値は"java.naming.factory.url.pkgs"です。

      関連項目:
    • PROVIDER_URL

      static final String PROVIDER_URL
      使用するサービス・プロバイダの構成情報を指定するための、環境プロパティの名前を保持する定数です。 プロパティの値には、URL文字列(ldap://somehost:389など)が含まれる必要があります。 このプロパティは、環境、システム・プロパティ、またはリソース・ファイルで指定できます。 これらのソースが指定されていない場合、デフォルトの構成はサービス・プロバイダによって決定されます。

      この定数の値は"java.naming.provider.url"です。

      関連項目:
    • DNS_URL

      static final String DNS_URL
      JNDI URLコンテキスト(dns://somehost/wiz.comなど)に使用するDNSホスト名およびドメイン名を指定するための、環境プロパティの名前を保持する定数です。 このプロパティは、環境、システム・プロパティ、またはリソース・ファイルで指定できます。 これらのソースのいずれにも指定されず、プログラムがDNS名を含むJNDI URLを使用しようとすると、ConfigurationExceptionがスローされます。

      この定数の値は"java.naming.dns.url"です。

      関連項目:
    • AUTHORITATIVE

      static final String AUTHORITATIVE
      要求されたサービスの権限を指定するための、環境プロパティの名前を保持する定数です。 プロパティの値が文字列trueの場合、もっとも正当な権限を持つソースにアクセスできる(キャッシュまたは複製をバイパスする)ことを示します。 値がそれ以外の場合、ソースには権限は必要ありませんが、持っている場合もあります。 指定しない場合、値のデフォルトはfalseです。

      この定数の値は"java.naming.authoritative"です。

      関連項目:
    • BATCHSIZE

      static final String BATCHSIZE
      サービスのプロトコルによってデータを返すときに使用するバッチ・サイズを指定するための、環境プロパティの名前を保持する定数です。 これは、指定したサイズのバッチでオペレーションの結果を返すプロバイダへのヒントになるため、プロバイダはパフォーマンスおよびリソースの使用法を最適化できます。 プロパティの値は、整数の文字列表現です。 指定しない場合、バッチ・サイズはサービス・プロバイダによって決定されます。

      この定数の値は"java.naming.batchsize"です。

      関連項目:
    • REFERRAL

      static final String REFERRAL
      サービス・プロバイダによって参照が処理される方法を指定するための、環境プロパティの名前を保持する定数です。 プロパティの値は、次の文字列の1つです。
      "follow"
      参照に自動的に従う
      "ignore"
      参照を無視する
      "throw"
      リフェラルが検出されると、ReferralExceptionがスローされます。
      このプロパティが指定されていない場合、デフォルトはプロバイダによって決定されます。

      この定数の値は"java.naming.referral"です。

      関連項目:
    • SECURITY_PROTOCOL

      static final String SECURITY_PROTOCOL
      使用するセキュリティ・プロトコルを指定するための、環境プロパティの名前を保持する定数です。 プロパティの値は、サービス・プロバイダによって決定される文字列(sslなど)です。 このプロパティが指定されていない場合、動作はサービス・プロバイダによって決定されます。

      この定数の値は"java.naming.security.protocol"です。

      関連項目:
    • SECURITY_AUTHENTICATION

      static final String SECURITY_AUTHENTICATION
      使用するセキュリティ・レベルを指定するための、環境プロパティの名前を保持する定数です。 プロパティの値は、文字列none、simple、strongのうちの1つです。 このプロパティが指定されていない場合、動作はサービス・プロバイダによって決定されます。

      この定数の値は"java.naming.security.authentication"です。

      関連項目:
    • SECURITY_PRINCIPAL

      static final String SECURITY_PRINCIPAL
      サービスに対する呼出し側を認証する主体の識別情報を指定するための、環境プロパティの名前を保持する定数です。 主体の形式は、認証方式によります。 このプロパティが指定されていない場合、動作はサービス・プロバイダによって決定されます。

      この定数の値は"java.naming.security.principal"です。

      関連項目:
    • SECURITY_CREDENTIALS

      static final String SECURITY_CREDENTIALS
      サービスに対する呼出し側を認証する主体の資格を指定するための、環境プロパティの名前を保持する定数です。 プロパティの値は、認証方式によります。 たとえば、ハッシュされたパスワード、クリアテキストのパスワード、キー、証明書などです。 このプロパティが指定されていない場合、動作はサービス・プロバイダによって決定されます。

      この定数の値は"java.naming.security.credentials"です。

      関連項目:
    • LANGUAGE

      static final String LANGUAGE
      サービスに使用する優先言語を指定するための、環境プロパティの名前を保持する定数です。 プロパティの値は、RFC 1766で定義されている言語タグのコロンで区切られたリストです。 このプロパティが指定されていない場合、言語の設定はサービス・プロバイダによって決定されます。

      この定数の値は"java.naming.language"です。

      関連項目:
    • APPLET

      @Deprecated(since="9", forRemoval=true) static final String APPLET
      非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
      この名前の環境プロパティは、初期コンテキストを構築する際に無視されます。 この定数は、もともと、初期コンテキストの作成時にパラメータを取得するAppletを指定するプロパティ名として使用されていました。 現在、初期コンテキストに渡す必要があるアプレットのプロパティはすべて、環境ハッシュテーブルにコピーする必要があります:
      
           Hashtable env = new Hashtable();
           env.put(Context.INITIAL_CONTEXT_FACTORY,
             ((Applet) this).getParameter(Context.INITIAL_CONTEXT_FACTORY));
           env.put(Context.PROVIDER_URL,
             ((Applet) this).getParameter(Context.PROVIDER_URL));
           // ... other properties ...
      
           Context ctx = new InitialContext(env);
       
      導入されたバージョン:
      1.3
      関連項目:
  • メソッドの詳細

    • lookup

      名前付きオブジェクトを取得します。 nameが空の場合、このコンテキストの新しいインスタンス(このコンテキストと同じネーミング・コンテキストを表しますが、その環境は独立して変更でき、同時にアクセスできます)を返します。
      パラメータ:
      name - 検索するオブジェクトの名前
      戻り値:
      nameにバインドされたオブジェクト
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • lookup

      名前付きオブジェクトを取得します。 詳細は、lookup(Name)を参照してください。
      パラメータ:
      name - 検索するオブジェクトの名前
      戻り値:
      nameにバインドされたオブジェクト
      例外:
      NamingException - ネーミング例外が発生した場合
    • bind

      void bind(Name name, Object obj) throws NamingException
      名前をオブジェクトにバインドします。 名前の終端の基本コンポーネント以外のすべてによって名付けられた、すべての中間コンテキストおよびターゲット・コンテキストがすでに存在している必要があります。
      パラメータ:
      name - バインドする名前。空は不可
      obj - バインドするオブジェクト。nullの可能性がある
      例外:
      NameAlreadyBoundException - 名前がすでにバインドされている場合
      InvalidAttributesException - オブジェクトによって一部の必須属性が指定されなかった場合
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • bind

      void bind(String name, Object obj) throws NamingException
      名前をオブジェクトにバインドします。 詳細は、bind(Name, Object)を参照してください。
      パラメータ:
      name - バインドする名前。空は不可
      obj - バインドするオブジェクト。nullの可能性がある
      例外:
      NameAlreadyBoundException - 名前がすでにバインドされている場合
      InvalidAttributesException - オブジェクトによって一部の必須属性が指定されなかった場合
      NamingException - ネーミング例外が発生した場合
    • rebind

      void rebind(Name name, Object obj) throws NamingException
      名前をオブジェクトにバインドし、既存のバインディングを上書きします。 名前の終端の基本コンポーネント以外のすべてによって名付けられた、すべての中間コンテキストおよびターゲット・コンテキストがすでに存在している必要があります。

      オブジェクトがDirContextの場合、名前に関連付けられた既存の属性は、オブジェクトの属性に置き換えられます。 そうでない場合、名前に関連付けられている既存の属性は、変更されないままです。

      パラメータ:
      name - バインドする名前。空は不可
      obj - バインドするオブジェクト。nullの可能性がある
      例外:
      InvalidAttributesException - オブジェクトによって一部の必須属性が指定されなかった場合
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • rebind

      void rebind(String name, Object obj) throws NamingException
      名前をオブジェクトにバインドし、既存のバインディングを上書きします。 詳細は、rebind(Name, Object)を参照してください。
      パラメータ:
      name - バインドする名前。空は不可
      obj - バインドするオブジェクト。nullの可能性がある
      例外:
      InvalidAttributesException - オブジェクトによって一部の必須属性が指定されなかった場合
      NamingException - ネーミング例外が発生した場合
    • unbind

      void unbind(Name name) throws NamingException
      名前付きオブジェクトをアンバインドします。 nameの終端の基本部分を除くすべてによって指定されたターゲット・コンテキストからnameの終端の基本名を削除します。

      このメソッドはべき等です。 ターゲット・コンテキストでターミナル・アトミック名がバインドされていない場合でも成功しますが、中間コンテキストが存在しない場合はNameNotFoundExceptionをスローします。

      名前に関連付けられている属性が削除されます。 中間コンテキストは変更されません。

      パラメータ:
      name - アンバインドする名前。空は不可
      例外:
      NameNotFoundException - 中間コンテキストが存在しない場合
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • unbind

      void unbind(String name) throws NamingException
      名前付きオブジェクトをアンバインドします。 詳細は、unbind(Name)を参照してください。
      パラメータ:
      name - アンバインドする名前。空は不可
      例外:
      NameNotFoundException - 中間コンテキストが存在しない場合
      NamingException - ネーミング例外が発生した場合
    • rename

      void rename(Name oldName, Name newName) throws NamingException
      新しい名前を、以前の名前にバインドされたオブジェクトにバインドし、以前の名前をアンバインドします。 2つの名前は、このコンテキストを基準にします。 以前の名前に関連付けられている属性は、新しい名前に関連付けられます。 以前の名前の中間コンテキストは、変更されません。
      パラメータ:
      oldName - 既存のバインディングの名前。空は不可
      newName - 新しいバインディングの名前。空は不可
      例外:
      NameAlreadyBoundException - newNameがすでにバインドされている場合
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • rename

      void rename(String oldName, String newName) throws NamingException
      新しい名前を、以前の名前にバインドされたオブジェクトにバインドし、以前の名前をアンバインドします。 詳細は、rename(Name, Name)を参照してください。
      パラメータ:
      oldName - 既存のバインディングの名前。空は不可
      newName - 新しいバインディングの名前。空は不可
      例外:
      NameAlreadyBoundException - newNameがすでにバインドされている場合
      NamingException - ネーミング例外が発生した場合
    • list

      バインドされたオブジェクトのクラス名とともに、名前付きコンテキストでバインドされた名前を列挙します。 サブコンテキストの内容は含まれません。

      このコンテキストにバインディングが追加されるか、またはこのコンテキストからバインディングが削除される場合、以前に返された列挙への影響は定義されていません。

      パラメータ:
      name - リスト表示するコンテキストの名前
      戻り値:
      このコンテキストのバインディングの名前とクラス名の列挙。 列挙の各要素の型はNameClassPairです。
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • list

      バインドされたオブジェクトのクラス名とともに、名前付きコンテキストでバインドされた名前を列挙します。 詳細は、list(Name)を参照してください。
      パラメータ:
      name - リスト表示するコンテキストの名前
      戻り値:
      このコンテキストのバインディングの名前とクラス名の列挙。 列挙の各要素の型はNameClassPairです。
      例外:
      NamingException - ネーミング例外が発生した場合
    • listBindings

      NamingEnumeration<Binding> listBindings(Name name) throws NamingException
      バインドされたオブジェクトとともに、名前付きコンテキストでバインドされた名前を列挙します。 サブコンテキストの内容は含まれません。

      このコンテキストにバインディングが追加されるか、またはこのコンテキストからバインディングが削除される場合、以前に返された列挙への影響は定義されていません。

      パラメータ:
      name - リスト表示するコンテキストの名前
      戻り値:
      このコンテキストのバインディングの列挙。 列挙の各要素の型はBindingです。
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • listBindings

      NamingEnumeration<Binding> listBindings(String name) throws NamingException
      バインドされたオブジェクトとともに、名前付きコンテキストでバインドされた名前を列挙します。 詳細は、listBindings(Name)を参照してください。
      パラメータ:
      name - リスト表示するコンテキストの名前
      戻り値:
      このコンテキストのバインディングの列挙。 列挙の各要素の型はBindingです。
      例外:
      NamingException - ネーミング例外が発生した場合
    • destroySubcontext

      void destroySubcontext(Name name) throws NamingException
      名前付きコンテキストを破棄し、名前空間から削除します。 名前に関連付けられている属性も削除されます。 中間コンテキストは破棄されません。

      このメソッドはべき等です。 ターゲット・コンテキストでターミナル・アトミック名がバインドされていない場合でも成功しますが、中間コンテキストが存在しない場合はNameNotFoundExceptionをスローします。

      連合ネーミング・システムでは、1つのネーミング・システムからのコンテキストが別のネーミング・システムの名前にバインドされます。 そのあと、合成名を使用して外部コンテキストのオペレーションを検索および実行できます。 ただし、外部コンテキストがバインドされているコンテキストの"サブコンテキスト"ではないため、このコンポジット名を使用してコンテキストを破棄しようとすると、NotContextExceptionで失敗します。 かわりに、unbind()を使用して、外部コンテキストのバインディングを削除します。 外部コンテキストを破棄するには、外部コンテキストの"ネイティブ"ネーミング・システムからコンテキストに対してdestroySubcontext()を実行する必要があります。

      パラメータ:
      name - 破棄されるコンテキストの名前。空は不可
      例外:
      NameNotFoundException - 中間コンテキストが存在しない場合
      NotContextException - 名前がバインドされているが、コンテキストに名前を付けていないか、または該当する型のコンテキストに名前を付けていない場合
      ContextNotEmptyException - 指定されたコンテキストが空でない場合
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • destroySubcontext

      void destroySubcontext(String name) throws NamingException
      名前付きコンテキストを破棄し、名前空間から削除します。 詳細は、destroySubcontext(Name)を参照してください。
      パラメータ:
      name - 破棄されるコンテキストの名前。空は不可
      例外:
      NameNotFoundException - 中間コンテキストが存在しない場合
      NotContextException - 名前がバインドされているが、コンテキストに名前を付けていないか、または該当する型のコンテキストに名前を付けていない場合
      ContextNotEmptyException - 指定されたコンテキストが空でない場合
      NamingException - ネーミング例外が発生した場合
    • createSubcontext

      新しいコンテキストを作成してバインドします。 指定した名前の新しいコンテキストを作成し、(名前の終端の基本コンポーネント以外のすべてによって名付けられた)ターゲット・コンテキストでバインドします。 すべての中間コンテキストおよびターゲット・コンテキストがすでに存在している必要があります。
      パラメータ:
      name - 作成するコンテキストの名前。空は不可
      戻り値:
      新しく作成されたコンテキスト
      例外:
      NameAlreadyBoundException - 名前がすでにバインドされている場合
      InvalidAttributesException - サブコンテキストの作成に必須属性の指定が必要な場合
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • createSubcontext

      新しいコンテキストを作成してバインドします。 詳細は、createSubcontext(Name)を参照してください。
      パラメータ:
      name - 作成するコンテキストの名前。空は不可
      戻り値:
      新しく作成されたコンテキスト
      例外:
      NameAlreadyBoundException - 名前がすでにバインドされている場合
      InvalidAttributesException - サブコンテキストの作成に必須属性の指定が必要な場合
      NamingException - ネーミング例外が発生した場合
    • lookupLink

      名前の終端の基本コンポーネントを除くリンクをともなう、名前付きオブジェクトを取得します。 nameにバインドされたオブジェクトがリンクでない場合は、オブジェクト自体を返します。
      パラメータ:
      name - 検索するオブジェクトの名前
      戻り値:
      ターミナル・リンク(もしあれば)の後のオブジェクトではなく、nameにバインドされます。
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • lookupLink

      名前の終端の基本コンポーネントを除くリンクをともなう、名前付きオブジェクトを取得します。 詳細は、lookupLink(Name)を参照してください。
      パラメータ:
      name - 検索するオブジェクトの名前
      戻り値:
      ターミナル・リンク(もしあれば)の後ではなく、nameにバインドされたオブジェクト
      例外:
      NamingException - ネーミング例外が発生した場合
    • getNameParser

      名前付きコンテキストに関連したパーサーを取得します。 名前空間の連合では、さまざまなネーミング・システムで名前の構文が構文解析されます。 アプリケーションからこのメソッドを使用すれば、特定のネーミング・システムのネーミング変換によって名前を基本コンポーネントに構文解析するパーサーを取得できます。 任意の単一ネーミング・システム内で、このメソッドによって返されるNameParserオブジェクトは(equals()テストの使用)と等しくなる必要があります。
      パラメータ:
      name - パーサーの取得元のコンテキストの名前
      戻り値:
      複合名の構文を構文解析して基本コンポーネントにする名前のパーサー
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • getNameParser

      名前付きコンテキストに関連したパーサーを取得します。 詳細は、getNameParser(Name)を参照してください。
      パラメータ:
      name - パーサーの取得元のコンテキストの名前
      戻り値:
      複合名の構文を構文解析して基本コンポーネントにする名前のパーサー
      例外:
      NamingException - ネーミング例外が発生した場合
    • composeName

      このコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。 このコンテキストに関連した名前(name)、上位コンテキストの1つを基準にしたこのコンテキストの名前(prefix)を指定すると、このメソッドは、関連するネーミング・システムに該当する構文を使用して、2つの名前の複合を返します。 つまり、nameによって、このコンテキストに関連してオブジェクトに名前を付ける場合、結果は同じオブジェクトの名前になりますが、上位コンテキストに関連しています。 名前はnullにできません。

      たとえば、このコンテキストが初期コンテキストに関連して"wiz.com"と命名された場合、

        composeName("east", "wiz.com")  
      上記は、"east.wiz.com"を返します。 このコンテキストの名前がorg/researchの場合、
        composeName("user/jane", "org/research")        
      上記は"org/research/user/jane"を返し、
        composeName("user/jane", "research")    
      上記は"research/user/jane"を返します。

      パラメータ:
      name - このコンテキストを基準にした名前
      prefix - いずれかの上位コンテキストを基準にした、このコンテキストの名前
      戻り値:
      prefixnameの変換
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • composeName

      このコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。 詳細は、composeName(Name, Name)を参照してください。
      パラメータ:
      name - このコンテキストを基準にした名前
      prefix - いずれかの上位コンテキストを基準にした、このコンテキストの名前
      戻り値:
      prefixnameの変換
      例外:
      NamingException - ネーミング例外が発生した場合
    • addToEnvironment

      このコンテキストの環境に、新しい環境プロパティを追加します。 プロパティがすでに存在する場合、値は上書きされます。 環境プロパティの詳細は、クラスの説明を参照してください。
      パラメータ:
      propName - 追加する環境プロパティの名前。nullは不可
      propVal - 追加するプロパティの値。nullは不可
      戻り値:
      プロパティの以前の値、またはプロパティが以前は環境になかった場合はnull
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • removeFromEnvironment

      このコンテキストの環境から環境プロパティを削除します。 環境プロパティの詳細は、クラスの説明を参照してください。
      パラメータ:
      propName - 削除する環境プロパティの名前。nullは不可
      戻り値:
      プロパティの以前の値、またはプロパティが環境になかった場合はnull
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • getEnvironment

      Hashtable<?,?> getEnvironment() throws NamingException
      このコンテキストで有効な環境を取得します。 環境プロパティの詳細は、クラスの説明を参照してください。

      呼出し元が、返されるオブジェクトを変更してはいけません。そのコンテキストへの影響は未定義です。 このコンテキストの環境は、addToEnvironment()およびremoveFromEnvironment()を使用して変更できます。

      戻り値:
      このコンテキストの環境。null以外
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
    • close

      void close() throws NamingException
      このコンテキストを閉じます。 このメソッドでは、ガベージ・コレクタによって自動的に解放されるまで待機するのではなく、このコンテキストのリソースがただちに解放されます。

      このメソッドはべき等です。すでに閉じられたコンテキストでこのメソッドを呼び出しても、効果はありません。 閉じられたコンテキストで他のメソッドを呼び出すことはできません。結果は未定義の動作になります。

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

      String getNameInNamespace() throws NamingException
      独自の名前空間でこのコンテキストの完全な名前を取得します。

      多くのネーミング・サービスには、各名前空間のオブジェクトに対する「完全な名前」の概念があります。 たとえば、LDAPエントリには識別名があり、DNSレコードには完全指定名があります。 このメソッドによって、クライアント・アプリケーションでこの名前を取得できます。 このメソッドで返される文字列は、JNDI合成名ではなく、コンテキスト・メソッドに直接渡すことはできません。 フルネームの概念が意味をなさない命名システムでは、OperationNotSupportedExceptionがスローされます。

      戻り値:
      独自の名前空間に対するこのコンテキストの名前。null以外
      例外:
      OperationNotSupportedException - ネーミング・システムにフル・ネームの概念がない場合
      NamingException - ネーミング例外が発生した場合
      導入されたバージョン:
      1.3