Java™ Platform
Standard Edition 7

パッケージ org.omg.CosNaming

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

参照: 説明

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

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

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

パッケージの仕様

Java(TM) Platform, Standard Edition 6 ORB が準拠する公式の仕様のサポートセクションの正確なリストは、「Java(TM) SE 6 での正式な 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 が提供するネームサービスのガイドラインに従って実装されます。したがって、サードパーティーのベンダーが OMG 準拠のネームサービスを実装していれば、Sun の CosNaming の実装とサードパーティーのベンダーの実装との間での切り替えが可能です。ただし、例外文字列の相違など、ネームサービスを実装するベンダーによって多少の違いがあることを理解しておく必要があります。

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

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

    これによって、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 Naming Context を取得します。

パッケージの仕様

関連項目

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

Java IDL の概要については、次を参照してください。

導入されたバージョン:
JDK1.3
Java™ Platform
Standard Edition 7

バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.