JavaTM 2 Platform
Std. Ed. v1.3

パッケージ org.omg.CosNaming

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

参照:
          説明

インタフェースの概要
BindingIterator BindingIterator インタフェースを使うと、クライアントは next_one または next_n を使ってバインディングを次々に返すことができます。
BindingIteratorOperations IDL-to-Java コンパイラ (ポータブル) バージョン "3.0" によりnameservice.idl から生成された org/omg/CosNaming/BindingIteratorOperations.java 。
NamingContext ネーミングコンテキストは、それぞれが一意の名前を持つ一連のネームバインディングを格納するオブジェクトです。
NamingContextOperations IDL-to-Java コンパイラ (ポータブル) バージョン "3.0" により nameservice.idl から生成された org/omg/CosNaming/NamingContextOperations.java。
 

クラスの概要
_BindingIteratorImplBase  
_BindingIteratorStub  
_NamingContextImplBase  
_NamingContextStub  
Binding  
BindingHelper  
BindingHolder  
BindingIteratorHelper  
BindingIteratorHolder  
BindingListHelper  
BindingListHolder  
BindingType  
BindingTypeHelper  
BindingTypeHolder  
IstringHelper  
NameComponent  
NameComponentHelper  
NameComponentHolder  
NameHelper  
NameHolder  
NamingContextHelper  
NamingContextHolder  
 

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

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

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

インタフェース

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

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

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

補助クラス

OMG IDL インタフェースを Java プログラミング言語にマッピングするために、idltojava コンパイラは、補助クラスと見なされる 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, を入れます。

    これによって、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

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.