モジュール java.naming

パッケージ javax.naming


パッケージjavax.naming
ネーム・サービスにアクセスするためのクラスおよびインタフェースを提供します。

このパッケージは、Java Naming and Directory Interface (JNDI)の命名操作を定義します。   JNDIは、Javaプログラミング言語で記述されたアプリケーションにネーミングおよびディレクトリ機能を提供します。 ほかのネームおよびディレクトリ・サービスの実装と独立して動作するように設計されています。 新しいサービス、展開されつつあるサービス、すでに展開されているサービスなど、さまざまなサービスに対して共通の方法でアクセスすることができます。

コンテキスト

このパッケージは、Contextインタフェースで表される、コンテキストの概念を定義します。 コンテキストはオブジェクトに対する名前のバインディングのセットで構成されます。 Contextは、オブジェクトの検索、バインディング、バインディング解除、名前の変更、およびサブコンテキストの作成と破棄を実行するためのコア・インタフェースです。

lookup()は、もっとも頻繁に使用される操作です。 検索したいオブジェクトの名前をlookup()に提供すると、その名前にバインドされたオブジェクトが返されます。 この例として、プリンタを検索して、出力するプリンタ・オブジェクトにドキュメントを送信するコードを次に示します。

Printer printer = (Printer)ctx.lookup("treekiller");
printer.print(report);

名前

Contextインタフェース内のすべてのネーミング・メソッドに、2つのオーバーロードがあります。1つはName引数を受け入れるオーバーロードで、もう1つは文字列名を受け入れるオーバーロードです。 Nameは、ジェネリック名を表す(複数のコンポーネントがある場合はゼロから順序付けされる)インタフェースです。 これらのメソッドの場合、複数の名前空間にまたがる名前を使用してオブジェクトに名前を付けるために、Nameを使用して合成名 (CompositeName)を表せます。

Nameを受け入れるオーバーロードは、アプリケーションで名前の操作(名前の作成、コンポーネントの比較など)を行う場合に便利です。 1つの名前で単純に読み込み、対応するオブジェクトを検索するなどの単純なアプリケーションで、文字列名を受け入れるオーバーロードはより役に立ちます。

バインディング

Bindingクラスはオブジェクトに対する名前のバインディングを表します。 このクラスは、バインドされたオブジェクトの名前、オブジェクトのクラスの名前、およびオブジェクト自体が格納される1つのタプル(組)です。

実際、Bindingクラスはオブジェクトの名前とオブジェクトのクラス名だけで構成される、NameClassPairのサブクラスです。 NameClassPairは、オブジェクトのクラスに関する情報だけが必要で、オブジェクトを取得するのに余計な手間をかけたくない場合に便利です。

リファレンス

オブジェクトはネーミングおよびディレクトリ・サービスに異なる方法で格納されます。 オブジェクト・ストアがJavaオブジェクトの格納をサポートしている場合、オブジェクトの直列化された形式での格納がサポートされます。 ただし、Javaオブジェクトの格納をサポートしないネーミングおよびディレクトリ・サービスもあります。 さらに、ディレクトリ内のいくつかのオブジェクトにとっては、Javaプログラムは単にそれらのオブジェクトにアクセスするアプリケーションの1グループにすぎません。 この場合、直列化されたJavaオブジェクトは最適な表現にはなりません。 JNDIは、オブジェクトのコピーの構築方法に関する情報が格納される、Referenceクラスで表される参照を定義します。 JNDIは、参照の検索先を、ディレクトリからこの参照が表すJavaオブジェクトへ変更しようとします。その結果、JNDIクライアントはディレクトリ内に格納される内容がJavaオブジェクトであるとみなします。

初期コンテキスト

JNDIでは、すべてのネーミングおよびディレクトリ操作はコンテキストに関連して実行されます。 絶対的なルートはありません。 したがって、JNDIはネーミングおよびディレクトリ操作の開始地点を指定する初期コンテキストInitialContextを定義します。 一度初期コンテキストを指定すると、ほかのコンテキストやオブジェクトを参照する場合もその初期コンテキストを使用できます。

例外

JNDIはネーミングおよびディレクトリ操作を実行する過程でスローできる例外のクラス階層を定義します。 このクラス階層のルートはNamingExceptionです。 特定の例外を扱うプログラムでは、その例外の対応するサブクラスをキャッチできます。 それ以外の場合、プログラムではNamingExceptionをキャッチします。

パッケージの仕様

JNDI APIの仕様と関連ドキュメントについては、「JNDIのドキュメント」を参照してください。
導入されたバージョン:
1.3
  • インタフェースのサマリー
    インタフェース
    説明
    このインタフェースは、名前からオブジェクトへのバインディングのセットから構成されるネーミング・コンテキストを表します。
    Nameインタフェースは、一般名、つまりコンポーネントが順序付けされたシーケンスを表します。
    このインタフェースは、1階層の名前空間から名前の構文を解析するために使用されます。
    このインタフェースは、javax.namingおよびjavax.naming.directoryパッケージ内のメソッドによって返されたリストを列挙するために使用されます。
    このインタフェースは、Referenceをそれ自体に提供できるオブジェクトによって実装されます。
  • クラスのサマリー
    クラス
    説明
    このクラスは、通信端点のアドレスのバイナリ形式を表します。
    このクラスは、コンテキストの名前とオブジェクトとのバインディングを表します。
    このクラスは、合成名を表します。合成名とは、複数の名前空間にまたがる一連のコンポーネントの名前です。
    このクラスは複合名を表します。複合名とは、階層名前空間から取得される名前です。
    このクラスは、ネーミング操作を実行するための開始コンテキストです。
    このクラスは参照を表します。参照の内容はリンク名と呼ばれる名前で、コンテキストの基本名にバインドされます。
    このクラスは、コンテキストのバインディングのオブジェクト名とクラス名のペアを表します。
    このクラスは通信端点のアドレスを表します。
    このクラスは、ネーミングおよびディレクトリ・システムの外部で検出されるオブジェクトに対する参照を表します。
    このクラスは、通信端点のアドレスを文字列形式で表します。
  • 例外のサマリー
    Exception
    説明
    この例外は、ネーミング・サービスまたはディレクトリ・サービスにアクセスする際に認証エラーが発生した場合にスローされます。
    この例外は、要求された認証の特定のフレーバがサポートされていない場合にスローされます。
    この例外は、オペレーションをこれ以上進められない名前のポイントにオペレーションが達したことを示すためにスローされます。
    この例外は、クライアントがディレクトリ・サービスまたはネーミング・サービスと通信できない場合にスローされます。
    この例外は、構成上の問題がある場合にスローされます。
    この例外は、空ではないコンテキストを破棄しようとした場合にスローされます。
    この例外は、要求されたオペレーションを完了するためにリソースが利用できない場合にスローされます。
    この例外は、ネーミング操作の呼出しが割り込まれた場合にスローされます。
    この例外は、指定された名前がネーミング・システムのネーミング構文と一致しないことを示します。
    この例外は、ユーザーまたはシステムで指定された制限によってメソッドが異常終了した場合にスローされます。
    この例外は、リンクの解決中に発生した問題を記述するために使用されます。
    この例外は、リンクを解決しようとしたときにループが検出された場合、またはリンク数の実装固有の制限に達した場合にスローされます。
    この例外は、リンクを解決または構築するときに無効なリンクが見つかった場合にスローされます。
    この例外は、名前がすでにほかのオブジェクトにバインドされているために、バインディングを追加できないことを示すメソッドによってスローされます。
    この例外は、バインドされていないために、名前のコンポーネントを解決できない場合にスローされます。
    ContextおよびDirContextインタフェースでの操作によってスローされるすべての例外のスーパー・クラスです。
    ContextおよびDirContextインタフェースでの操作によってスローされるセキュリティに関連する例外のスーパー・クラスです。
    この例外は、初期コンテキスト実装が作成できない場合にスローされます。
    この例外は、クライアントがアクセス権を持たない操作を実行しようとするとスローされます。
    ネーミング操作を継続するためにコンテキストが必要な地点で、解決されたオブジェクトがコンテキストではない場合に、この例外はスローされます。
    コンテキスト実装が呼び出された操作をサポートしない場合に、この例外はスローされます。
    この例外は、現在返されている結果、またはこれまでに返された結果が部分的であること、および操作が完了できないことを示すためにスローされます。
    このabstractクラスは、LDAP v3サーバーによって返される場合などの参照に応答して生成される参照例外を表すのに使用されます。
    この例外は、ディレクトリ・サービスまたはネーム・サービスとの通信を試みた結果、そのサービスが利用できない場合にスローされます。
    この例外は、メソッドがサイズ関連の制限を超える結果を生成した場合にスローされます。
    この例外は、メソッドが指定された制限時間内に終了しない場合にスローされます。