JavaTM 2 Platform
Standard Ed. 5.0

パッケージ org.omg.CosNaming

Java IDL のネームサービスを提供します。

参照先:
          説明

インタフェースの概要
BindingIterator BindingIterator インタフェースを使うと、クライアントは next_one または next_n を使ってバインディングを次々に返すことができます。
BindingIteratorOperations BindingIterator インタフェースを使うと、クライアントは next_one または next_n を使ってバインディングを次々に返すことができます。
NamingContext ネーミングコンテキストは、それぞれが一意の名前を持つ一連のネームバインディングを格納するオブジェクトです。
NamingContextExt NamingContextExt は、それぞれの名前が固有で Interoperable Naming Service の一部である名前バインディングのセットを格納する NamingContext の拡張です。
NamingContextExtOperations NamingContextExt は、それぞれの名前が固有で Interoperable Naming Service の一部である名前バインディングのセットを格納する NamingContext の拡張です。
NamingContextOperations ネーミングコンテキストは、それぞれが一意の名前を持つ一連のネームバインディングを格納するオブジェクトです。
 

クラスの概要
_BindingIteratorImplBase  
_BindingIteratorStub BindingIterator インタフェースを使うと、クライアントは next_one または next_n を使ってバインディングを次々に返すことができます。
_NamingContextExtStub NamingContextExt は、それぞれの名前が固有で Interoperable Naming Service の一部である名前バインディングのセットを格納する NamingContext の拡張です。
_NamingContextImplBase  
_NamingContextStub ネーミングコンテキストは、それぞれが一意の名前を持つ一連のネームバインディングを格納するオブジェクトです。
Binding org/omg/CosNaming/Binding.java。
BindingHelper org/omg/CosNaming/BindingHelper.java。
BindingHolder org/omg/CosNaming/BindingHolder.java。
BindingIteratorHelper BindingIterator インタフェースを使うと、クライアントは next_one または next_n を使ってバインディングを次々に返すことができます。
BindingIteratorHolder BindingIterator インタフェースを使うと、クライアントは next_one または next_n を使ってバインディングを次々に返すことができます。
BindingIteratorPOA BindingIterator インタフェースを使うと、クライアントは next_one または next_n を使ってバインディングを次々に返すことができます。
BindingListHelper バインディングのリストです。
BindingListHolder バインディングのリストです。
BindingType 指定されたバインディングが、オブジェクト用 (つまりネーミングコンテキストでない) かネーミングコンテキスト用かを指定します。
BindingTypeHelper 指定されたバインディングが、オブジェクト用 (つまりネーミングコンテキストでない) かネーミングコンテキスト用かを指定します。
BindingTypeHolder 指定されたバインディングが、オブジェクト用 (つまりネーミングコンテキストでない) かネーミングコンテキスト用かを指定します。
IstringHelper org/omg/CosNaming/IstringHelper.java。
NameComponent org/omg/CosNaming/NameComponent.java。
NameComponentHelper org/omg/CosNaming/NameComponentHelper.java。
NameComponentHolder org/omg/CosNaming/NameComponentHolder.java。
NameHelper 名前は、名前コンポーネントのシーケンスです。
NameHolder 名前は、名前コンポーネントのシーケンスです。
NamingContextExtHelper NamingContextExt は、それぞれの名前が固有で Interoperable Naming Service の一部である名前バインディングのセットを格納する NamingContext の拡張です。
NamingContextExtHolder NamingContextExt は、それぞれの名前が固有で Interoperable Naming Service の一部である名前バインディングのセットを格納する NamingContext の拡張です。
NamingContextExtPOA NamingContextExt は、それぞれの名前が固有で Interoperable Naming Service の一部である名前バインディングのセットを格納する NamingContext の拡張です。
NamingContextHelper ネーミングコンテキストは、それぞれが一意の名前を持つ一連のネームバインディングを格納するオブジェクトです。
NamingContextHolder ネーミングコンテキストは、それぞれが一意の名前を持つ一連のネームバインディングを格納するオブジェクトです。
NamingContextPOA ネーミングコンテキストは、それぞれが一意の名前を持つ一連のネームバインディングを格納するオブジェクトです。
 

パッケージ org.omg.CosNaming の説明

Java IDL のネームサービスを提供します。Object Request Broker Daemon (ORBD) にも一時的および持続的なネームサービスがあります。

このパッケージ、およびこのパッケージに含まれているすべてのクラスおよびインタフェースは、OMG IDL で記述されたモジュールであるファイル nameservice.idl で、idlj ツールを実行することにより生成されています。

パッケージの仕様

CORBA の正式な仕様のうち、Java 2 Platform, Standard Edition, v.1.4 ORB が準拠しているセクションについては、「J2SE 1.4 でサポートする CORBA の正式な仕様」を参照してください。

インタフェース

パッケージ org.omg.CosNaming には、2 つの public インタフェースと、いくつかの補助クラスが含まれています。

インタフェースは次の 2 つです。

この 2 つのインタフェースは、名前とオブジェクト参照のバインドとアンバインド、バインドされたオブジェクト参照の取得、およびバインディングをリストから次々に返すための手段を提供します。NamingContext インタフェースは、ネームサービスの主要な機能を提供し、BindingIterator インタフェースは、名前とオブジェクト参照のバインディングをリストから次々に返すための手段を提供します。

補助クラス

OMG IDL インタフェースを Java プログラミング言語にマッピングするために、idlj コンパイラは、補助クラスと見なされる Java クラスを作成します。生成された補助クラスは、NamingContext インタフェースおよび BindingIterator インタフェースによって使用されます。補助クラスについてのコメントを次に示します。

NamingContext および BindingIterator によって使用されるクラス

ネームサービスによって使用されるクラスを次に示します。これらのクラスそれぞれに対して生成されるヘルパークラスおよびホルダークラスについてはあとで説明します。

ホルダークラス

OMG IDL は、操作から値を返すために OUT パラメータおよび INOUT パラメータを使用します。OUT パラメータおよび INOUT パラメータを持たない Java プログラミング言語へマッピングすることにより、それぞれの型にホルダークラスと呼ばれる特殊なクラスが作成されます。ホルダークラスのインスタンスは、パラメータとして Java メソッドに渡すことができ、値を value フィールドに代入できます。これにより、OUT パラメータまたは INOUT パラメータの機能を果たすことができます。

org.omg.CosNaming パッケージでは、次のホルダークラスが生成されます。

org.omg.CORBA パッケージでは、Java の基本型のそれぞれについて、ホルダークラス (IntHolderShortHolderStringHolder など) があります。

また、Name クラスがない場合でも NameHolder クラスがあります。同様に、BindingList クラスがない場合でも BindingListHolder があります。これは、OMG IDL インタフェースでは、Name および BindingListtypedef であるためです。IDL の typedef から Java の構造体へのマッピングはできませんが、typedef がシーケンス用または配列用である場合はホルダークラスが生成されます。Java プログラミング言語にマッピングされた場合は、NameNameComponent オブジェクトの配列になり、BindingListBinding オブジェクトの配列になります。すべてのホルダークラスには、少なくとも、次に示す 2 つのコンストラクタと 1 つのフィールドがあります。

ユーザ定義型 (Java クラス) のホルダークラスには、このほかに 3 つのメソッドがありますが、アプリケーション開発者が直接これらのメソッドを使用することはありません。

ヘルパークラス

OMG IDL インタフェースのすべてのユーザ定義型で生成されるヘルパークラスは、ユーザ定義型の操作に必要な static メソッドを提供します。

ヘルパークラスには、アプリケーションプログラマが使用するメソッドが 1 つだけあります。narrow メソッドです。IDL インタフェースからマッピングされた Java インタフェースだけが、narrow メソッドのあるヘルパークラスを持ちます。このため、CosNaming パッケージでは、NamingContextHelper クラスと BindingIteratorHelper クラスだけに narrow メソッドがあります。

org.omg.CosNaming.NamingContextPackage パッケージ

このパッケージは、org.omg.CosNaming パッケージで使用される例外と、NotFound 例外の理由を提供する NotFoundReason クラスの Helper クラスおよび Holder クラスを提供します。

次の例外の Helper クラスおよび Holder クラスがあります。

ネームサービス互換性

Sun の CosNaming パッケージの実装は、OMG COSNaming 仕様に従っています。つまり、Sun のネームサービスの API は、OMG が提供するネームサービスのガイドラインに従って実装されます。したがって、Sun 以外のベンダーが OMG 準拠のネームサービスを実装していれば、Sun の CosNaming の実装と Sun 以外のベンダーの実装との間での切り替えが可能です。ただし、例外文字列の相違など、ネームサービスを実装するベンダーによって多少の違いがあることを理解しておく必要があります。

Sun 以外のネームサービスを使用する際のガイド

同じベンダーの ORB と ORB サービスの使用をお勧めしますが、Sun 以外の COSNaming 実装に Sun の RMI-IIOP ORB を接続することも可能です。次のステップに従います。
  1. Bootstrap サーバにプロパティファイルを作成し、そのファイルに 2 つのエントリを作成します。たとえば、このプロパティファイルを /tmp/services と名付けてそのファイルに NameService <Root Naming Context の Stringified IOR > を入れます。

    これによって、NameService と、使用する CosNaming 実装の Root Naming Context とが関連付けられます。

  2. 次のコマンドを使用して、スタンドアロン Bootstrap サーバを起動します。
      java -classpath $(CLASSPATH) com.sun.corba.ee.internal.CosNaming.BootstrapServer -InitialServicesFile "/tmp/services" [-ORBInitialPort port] 

    コマンドの最後の角括弧は、ポート番号の指定が任意であることを示します。

アプリケーションが org.omg.CORBA.ORB.resolve_initial_references メソッドを呼び出すと、CORBA プロセスが Bootstrap Server に接続して Root NamingContext を取得します。

パッケージの仕様

関連ドキュメント

CosNaming API の概要および使用例については、次のドキュメントを参照してください。

Java IDL の概要については、次のドキュメントを参照してください。

導入されたバージョン:
JDK1.3

JavaTM 2 Platform
Standard Ed. 5.0

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

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。