ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

パッケージ 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(tm) Platform
Standard Edition 8

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