モジュール 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()の結果をContexメソッドに対する引数として使用できます。 JNDI 1.2以前は、すべての名前引数が合成名とみなされていました。

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

連合をサポートしていないシステムでは、(NameまたはString形式の)名前引数およびNamingEnumerationで返される名前は、サービス・プロバイダの判断により、合成名前空間の名前ではなく、独自の名前空間の名前になることがあります。

例外

このインタフェースのすべてのメソッドによって、NamingExceptionまたはそのサブクラスのいずれかがスローされます。 各例外の詳細については、NamingExceptionおよびサブクラスを参照してください。

並行アクセス

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

並行性を制御するために、NamingEnumerationを返すコンテキスト・オペレーションは、列挙が使用中のとき、またはそのオペレーションで生成される参照が実行中のときには、完了していないものとみなされます。

パラメータ

Contextインタフェースのメソッドまたはそのサブインタフェースの1つに引き渡される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という名前の「アプリケーション・リソース・ファイル」をすべて検索します。 さらに、Javaインストール・ディレクトリに組み込みのプロパティ・ファイル(通常はconf/jndi.properties)が含まれている場合、JNDIはそれを追加のアプリケーション・リソース・ファイルとして扱います。 これらのファイルに含まれるプロパティはすべて、初期コンテキストの環境に配置されます。 この環境は、他のコンテキストに継承されます。

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

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

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

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

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

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

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

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

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

    修飾子と型 メソッド 説明
    Object addToEnvironment​(String propName, Object propVal)
    このコンテキストの環境に、新しい環境プロパティを追加します。
    void bind​(String name, Object obj)
    名前をオブジェクトにバインドします。
    void bind​(Name name, Object obj)
    名前をオブジェクトにバインドします。
    void close()
    このコンテキストを閉じます。
    String composeName​(String name, String prefix)
    このコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。
    Name composeName​(Name name, Name prefix)
    このコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。
    Context createSubcontext​(String name)
    新しいコンテキストを作成してバインドします。
    Context createSubcontext​(Name name)
    新しいコンテキストを作成してバインドします。
    void destroySubcontext​(String name)
    名前付きコンテキストを破棄し、名前空間から削除します。
    void destroySubcontext​(Name name)
    名前付きコンテキストを破棄し、名前空間から削除します。
    Hashtable<?,​?> getEnvironment()
    このコンテキストで有効な環境を取得します。
    String getNameInNamespace()
    独自の名前空間でこのコンテキストの完全な名前を取得します。
    NameParser getNameParser​(String name)
    名前付きコンテキストに関連したパーサーを取得します。
    NameParser getNameParser​(Name name)
    名前付きコンテキストに関連したパーサーを取得します。
    NamingEnumeration<NameClassPair> list​(String name)
    バインドされたオブジェクトのクラス名とともに、名前付きコンテキストでバインドされた名前を列挙します。
    NamingEnumeration<NameClassPair> list​(Name name)
    バインドされたオブジェクトのクラス名とともに、名前付きコンテキストでバインドされた名前を列挙します。
    NamingEnumeration<Binding> listBindings​(String name)
    バインドされたオブジェクトとともに、名前付きコンテキストでバインドされた名前を列挙します。
    NamingEnumeration<Binding> listBindings​(Name name)
    バインドされたオブジェクトとともに、名前付きコンテキストでバインドされた名前を列挙します。
    Object lookup​(String name)
    名前付きオブジェクトを取得します。
    Object lookup​(Name name)
    名前付きオブジェクトを取得します。
    Object lookupLink​(String name)
    名前の終端の基本コンポーネントを除くリンクをともなう、名前付きオブジェクトを取得します。
    Object lookupLink​(Name name)
    名前の終端の基本コンポーネントを除くリンクをともなう、名前付きオブジェクトを取得します。
    void rebind​(String name, Object obj)
    名前をオブジェクトにバインドし、既存のバインディングを上書きします。
    void rebind​(Name name, Object obj)
    名前をオブジェクトにバインドし、既存のバインディングを上書きします。
    Object removeFromEnvironment​(String propName)
    このコンテキストの環境から環境プロパティを削除します。
    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"です。

      関連項目:
      InitialContext, InitialDirContext, NamingManager.getInitialContext(java.util.Hashtable<?, ?>), InitialContextFactory, NoInitialContextException, addToEnvironment(String, Object), removeFromEnvironment(String), 「定数フィールド値」
    • OBJECT_FACTORIES

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

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

      関連項目:
      NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>), ObjectFactory, addToEnvironment(String, Object), removeFromEnvironment(String), 「定数フィールド値」
    • STATE_FACTORIES

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

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

      導入されたバージョン:
      1.3
      関連項目:
      NamingManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>), StateFactory, addToEnvironment(String, Object), removeFromEnvironment(String), 「定数フィールド値」
    • URL_PKG_PREFIXES

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

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

      関連項目:
      NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>), NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>), ObjectFactory, addToEnvironment(String, Object), removeFromEnvironment(String), 「定数フィールド値」
    • PROVIDER_URL

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

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

      関連項目:
      addToEnvironment(String, Object)removeFromEnvironment(String)定数フィールド値
    • DNS_URL

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

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

      関連項目:
      addToEnvironment(String, Object)removeFromEnvironment(String)定数フィールド値
    • AUTHORITATIVE

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

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

      関連項目:
      addToEnvironment(String, Object)removeFromEnvironment(String)定数フィールド値
    • BATCHSIZE

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

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

      関連項目:
      addToEnvironment(String, Object)removeFromEnvironment(String)定数フィールド値
    • REFERRAL

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

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

      関連項目:
      addToEnvironment(String, Object)removeFromEnvironment(String)定数フィールド値
    • SECURITY_PROTOCOL

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

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

      関連項目:
      addToEnvironment(String, Object)removeFromEnvironment(String)定数フィールド値
    • SECURITY_AUTHENTICATION

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

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

      関連項目:
      addToEnvironment(String, Object)removeFromEnvironment(String)定数フィールド値
    • SECURITY_PRINCIPAL

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

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

      関連項目:
      addToEnvironment(String, Object)removeFromEnvironment(String)定数フィールド値
    • SECURITY_CREDENTIALS

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

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

      関連項目:
      addToEnvironment(String, Object)removeFromEnvironment(String)定数フィールド値
    • LANGUAGE

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

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

      関連項目:
      addToEnvironment(String, Object)removeFromEnvironment(String)定数フィールド値
    • APPLET

      @Deprecated static final String APPLET
      Deprecated.
      この名前の環境プロパティは、初期コンテキストを構築する際に無視されます。 この定数はもともと、初期コンテキストを作成するときにパラメータを取り出すための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

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

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

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

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

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

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

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

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

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

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

      パラメータ:
      name - リスト表示するコンテキストの名前
      戻り値:
      このコンテキストのバインディングの列挙。 列挙の各要素の型はBinding
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
      listBindings(String), list(Name), Binding
    • 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(String)
    • destroySubcontext

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

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

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

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

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

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

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

      Name composeName​(Name name, Name prefix) throws NamingException
      このコンテキストを基準にした名前を持つこのコンテキストの名前を変換します。 このコンテキストに関連した名前(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(String, String)
    • composeName

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

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

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

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

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

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

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

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

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

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

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

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