モジュール 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つのオーバーロードがあります: Name引数を受け入れ、文字列名を受け入れる引数。 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