![]() ![]() ![]() ![]() ![]() ![]() ![]() |
注意: | Oracle Tuxedo CORBA JavaクライアントとOracle Tuxedo CORBA JavaクライアントORBはTuxedo 8.1で非推奨になり、サポートされなくなりました。すべてのOracle Tuxedo CORBA JavaクライアントおよびOracle Tuxedo CORBA JavaクライアントORBのテキスト・リファレンスとコード・サンプルは、サード・パーティのJava ORBライブラリを実装または実行する際の参考や、プログラマの参照用としてのみ使用してください。 |
注意: | サード・パーティのCORBA Java ORBのテクニカル・サポートは、各ベンダーによって提供されます。Oracle Tuxedoでは、サード・パーティのCORBA Java ORBに関する技術的なサポートやドキュメントは提供していません。 |
CORBAネーム・サービスには、CORBAネーム・サービスのサーバー・プロセスの管理、ネームスペースの名前のバインドとアンバインド、およびネームスペースの内容の表示のための次のコマンドが用意されています。
CORBAネーム・サービスのサーバー・プロセスを制御します。
cns CLOPT="[-A] [servopts
options
] --
[-b bucketcount
]
[-c]
[-d]
[-f filename
]
[-M maxiterators
]
[-p [persiststoragefilename
] ]"
CORBAネーム・サービスのサーバー・プロセスでは、CORBA CosNaming準拠のネーム・サービスが提供されます。使用するOracle Tuxedoアプリケーションに対して、そのOracle Tuxedoアプリケーションで使用される他のサーバー・プロセスと同様に、CORBAネーム・サービスのサーバー・プロセスとそのオプションをUBBCONFIG
ファイルで定義する必要があります。UBBCONFIG
ファイルのCLOPT
パラメータの2つのダッシュ(--
)の後に、cns
コマンドライン・オプションを入力します。コマンドライン・オプションは次のとおりです。
-b
bucketcount
-c
-p
コマンドライン・オプションは、 -c
コマンドライン・オプションを指定する場合に指定する必要があります。
-d
-p
コマンドライン・オプションは、-d
コマンドラインオプションを指定する場合に指定する必要があります。
-f
filename
-M
maxiterators
CosNaming::NamingContext::list()
メソッドを使用する場合に作成されます。バインディング・イテレータを使用してクライアント・アプリケーションを実行した後にバインディング・イテレータを削除するには、クライアント・アプリケーションでCosNaming::BindingIterator::destroy()
メソッドを使用する必要があります。クライアント・アプリケーションがバインディング・イテレータを明示的に削除しなかった場合は、-M
コマンドライン・オプションで指定した値に数が達すると、CORBAネーム・サービスのサーバー・プロセスによってバインディング・イテレータが削除されます。バインディング・イテレータの最大数に達してから、新しいバインディング・イテレータを作成しようとすると、クライアント・アプリケーションで使用中のバインディング・イテレータがCORBAネーム・サービスのサーバー・プロセスによって破棄されます。バインディング・イテレータは、使用履歴の最も古いアルゴリズムに基づいて削除されます。デフォルト値は20です。値を0にすると、バインディング・イテレータの数に上限がなくなります(バインディング・イテレータはCORBAネーム・サービスのサーバー・プロセスによって破棄されず、関連するメモリーも解放されません)。0の値を指定した場合は、クライアント・アプリケーションでCosNaming::BindingIterator::destroy()
メソッドを使用して、未使用のバインディング・イテレータを明示的に削除する必要があります。
-p [
persistentstoragefilename
]
CNS_PERSIST_FILE
環境変数の値が使用されます。CNS_PERSIST_FILE
環境変数が設定されていない場合は、次のファイルが使用されます。
%APPDIR%\cnspersist.dat
UNIX $APPDIR/cnspersist.dat
永続ストレージ・ファイルは、CORBAネーム・サービスのサーバー・プロセスの開始時に読み込まれます。永続ストレージ・ファイルは、ネームスペースに変更が加えられると追加されます。新しいネームスペースを作成する場合は、既存の永続ストレージ・ファイルを削除するか、CORBAネーム・サービスのサーバー・プロセスに新しい永続ストレージ・ファイルを作成する必要があります。
アプリケーション・オブジェクトおよびネーミング・コンテキストをネームスペースにバインドします。
注意: | cnsbind コマンドは、CosNamingインタフェースとやり取りします。このコマンドを使用するには、CORBAネーム・サービスのサーバー・プロセスを実行している必要があります。 |
cnsbind
[-C]
[-f root_context_filename
]
[-h]
[-N]
[-o ior_filename
]
[-r]
[-T TObjAddr
]
bind_name
cnsbind
コマンドでは、CORBA CosNamingインタフェースを使用して新しいアプリケーション・オブジェクトとネーミング・コンテキスト・オブジェクトをネームスペースにバインドします。このコマンドでは、連合型ネームスペースを簡単に作成できます。cnsbind
コマンドの起動時に例外が戻された場合は、コマンドが終了し、対応するメッセージが表示されます。
cnsbind
コマンドのコマンドライン・オプションは次のとおりです。
-C
cnsbind
コマンドで、bind_name
を名前に使用し、-o
コマンドライン・オプションで指定したior_filename
を使用してコンテキストを作成するように指定します。-C
コマンドライン・オプションは、任意のネームスペースのネーミング・コンテキスト・オブジェクトを、指定したネームスペースに連合するのに使用されます。
-f
root_context_filename
Tobj_Bootstrap::resolve_initial_references()
メソッドを使用して、指定したOracle TuxedoドメインでCORBAネーム・サービスのサーバー・プロセスをロケートします。IORのホストとポートはTOBJADDR
の値に一致している必要があります。このコマンドライン・オプションは、TOBJADDR
環境変数の設定よりも優先されます。コマンドライン・オプションが指定されていない場合は、TOBJADDR
環境変数が使用されます。
-h
-N
cnsbind
コマンドによって作成されているため、-o
コマンドライン・オプションを-N
コマンドライン・オプションとともに指定する必要はありません。-o
コマンドライン・オプションを-N
コマンドライン・オプションとともに使用しても、-o
コマンドライン・オプションの情報は無視されます。
-o
ior_filename
-f
コマンドライン・オプションで指定したネームスペースにバインドするオブジェクトのIORを格納するファイルを指定します。-C
コマンドライン・オプションが指定されている場合は、ncontext
型のオブジェクトが作成され、指定されていない場合は、nobject
型のオブジェクトが作成されます。
-r
-r
コマンドライン・オプションを指定しないcnsbind
コマンドのデフォルトの動作では、指定したオブジェクトのバインディングがすでに存在する場合に、AlreadyBound
例外が発生します。cnsbind
コマンドの呼出し時に、AlreadyBound
またはその他の例外が戻されると、コマンドが終了し、"Error, already bound"
のメッセージが表示されます。
T
TObjAddr
cnsbind
コマンドでログインする必要があります。このコマンドライン・オプションは、TOBJADDR
環境変数の設定より優先されます。コマンドライン・オプションが指定されていない場合は、TOBJADDR
環境変数の値が使用されます。コマンドライン・オプションが指定されておらず、TOBJADDR
が設定されていない場合、プログラムはネイティブ・クライアントとして実行され、TGIOPプロトコルがロードされます。
bind_name
Tobj_Bootstrap::resolve_initial_references
メソッドから取得されるルート・ネーミング・コンテキスト、または-f
コマンドライン・オプションから取得される文字列化されたIORで示されるネーミング・コンテキストに基づいて、ネームスペースに追加されるアプリケーション・オブジェクトまたはネーミング・コンテキスト・オブジェクトにバインドされる名前を指定します。bind_name
文字列は、Object Management Group (OMG)のインターオペラブル・ネーム・サービス(INS)仕様で指定した名前の文字列の形式に準拠する必要があります。
次の例は、アプリケーション・オブジェクトのバインディングを示しています。
cnsbind -o ./app_obj_ior.txt MyContext/AppObject1
次の例は、ネーミング・コンテキストのバインディングを示しています。
cnsbind -N MyContext/CtxObject1
次の例は、別のネームスペースへのフェデレーション・ポイントのバインディングを示しています。
cnsbind -C -o ./remote_ior.txt MyContext/RemoteNSCtx1
注意: | cnsls コマンドは、CosNamingインタフェースとやり取りします。このコマンドを使用するには、CORBAネーム・サービスのサーバー・プロセスを実行している必要があります。 |
cnsls
[-f root_context_filename
]
[-h]
[-s]
[-R]
[-T TobjAddr
]
[resolve_name
]
cnsls
コマンドでは、CORBA CosNamingインタフェースを使用してネームスペースの内容を表示します。非印字文字がNameComponent
データ構造体の一部として使用されている場合、cnsls
コマンドの動作は未定義です。cnsls
コマンドの起動時に例外が発生すると、コマンドが終了し、対応するメッセージが表示されます。
cnsls
コマンドのコマンドライン・オプションは次のとおりです。
-f
root_context_filename
Tobj_Bootstrap::resolve_initial_references()
メソッドを使用して、指定したOracle TuxedoドメインでCORBAネーム・サービスのサーバー・プロセスをロケートします。IORのホストとポートはTObjAddr
の値に一致している必要があります。このコマンドライン・オプションは、TOBJADDR
環境変数の設定よりも優先されます。コマンドライン・オプションが指定されていない場合は、TOBJADDR
環境変数の値が使用されます。
-h
-s
-R
resolve_name
で始まるネームスペースのバインディングを再帰的に表示します。このコマンドライン・オプションをcnsls
コマンドに指定すると、このような境界が交差している場合にも何も示されずに境界を越える可能性があります。また、ネームスペース情報に循環が存在する場合に、このコマンドライン・オプションをcnsls
コマンドに指定すると、ループに入る可能性があります。
T
TObjAddr
cnsls
コマンドでログインする必要があります。このコマンドライン・オプションは、TOBJADDR
環境変数の設定より優先されます。コマンドライン・オプションが指定されていない場合は、TOBJADDR
環境変数が使用されます。
resolve_name
Tobj_Bootstrap::resolve_initial_references()
メソッドによって取得されるルート・ネーミング・コンテキスト、または-f
コマンドライン・オプションから取得される文字列化されたIORで示されるネーミング・コンテキストに基づいて、ネーム・サービスで解決する名前を指定します。resolve_name
文字列は、OMG INS仕様で指定した名前の文字列の形式に準拠する必要があります。バックスラッシュ(\
)文字は、名前コンポーネントを区切るのに使用され、ピリオド(.
)文字はid
フィールドとkind
フィールドを区切ります。
cnsls -R MyContext.kind/AnotherContext
[context] MyContext.kind/AnotherContext
[object] Obj1
[object] Obj2
[context] Ctx1
[object] AnotherObject
cnsunbind
[-D]
[-f root_context_filename
]
[-h]
[-T TObjAddr
]
bind_name
cnsubind
コマンドでは、ネームスペースのバインディングを解除します。cnsunbind
コマンドの起動時に例外が戻されると、コマンドが終了し、対応するメッセージが表示されます。
cnsunbind
コマンドライン・オプションは次のとおりです。
-D
bind_name
にバインドされているネーミング・コンテキストを破棄します。コンテキストの削除時に-D
コマンドライン・オプションを指定しても、コンテキストが別のバインディングの一部になっている場合は孤立しません。このコマンドライン・オプションでは、同時に複数のネーミング・コンテキスト・オブジェクトにバインドされた場合などに、バインディングが保留される可能性があるため、使用する場合は注意してください。
-f
root_context_filename
Tobj_Bootstrap::resolve_initial_references()
メソッドを使用して、指定したOracle Tuxedoドメイン用のサーバー・プロセスをロケートします。
-h
T
TObjAddr
cnsbind
コマンドでログインする必要があります。このコマンドライン・オプションは、TOBJADDR
環境変数の設定より優先されます。コマンドライン・オプションが指定されていない場合は、TOBJADDR
環境変数が使用されます。
bind_name
Tobj_Bootstrap::resolve_initial_references()
メソッドから取得されるルート・ネーミング・コンテキスト、または-f
コマンドライン・オプションから取得される文字列化されたIORで示されるネーミング・コンテキストに基づいて、ネームスペースから削除されるバインディングの名前を指定します。bind_name
文字列は、OMG INS仕様で指定した名前の文字列の形式に準拠する必要があります。
次の例は、ネームスペースのバインディングの解除を示しています。
cnsunbind MyContext/CtxObject1
次の例は、ネームスペースのバインディングの解除、およびバインドされているオブジェクトの破棄を示しています。
cnsunbind -D MyContext/CtxObject1
NULL
文字は、id
文字列とkind
文字列の終端としてのみ使用します(空の文字列は有効とみなされます)。CannotProceed
例外をスローしません。
NameService
環境オブジェクトは、ネームスペースのルートへの接続に使用できます。NameService
環境オブジェクトを使用する場合、オブジェクト・リクエスト・ブローカ(ORB)がネームスペースのルートをロケートします。BootstrapオブジェクトまたはCORBAインターオペラブル・ネーミング・サービス(INS)のブートストラップ処理メカニズムを使用すると、NameService環境オブジェクトへの初期リファレンスを取得できます。OracleクライアントORBを使用する場合は、Oracle専用のメカニズムを使用します。別のベンダーのクライアントORBを使用する場合は、CORBA INSメカニズムを使用します。
ネームスペースへの接続の詳細は、「ステップ3: Oracle Tuxedoネームスペースに接続する」を参照してください。Oracle Tuxedoドメインのブートストラップ処理の詳細は、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedo CORBAプログラミング・リファレンス』の第4章「CORBAブートストラップ処理のプログラミング・リファレンス」を参照してください。
CORBAネーム・サービスでは、次のCosNamingデータ構造体を使用します。
NamingContext
オブジェクトは、オブジェクト・リクエスト・ブローカ(ORB)オブジェクトまたは他のNamingContext
オブジェクトにバインドされている名前のリストの格納および操作に使用されます。Oracle Tuxedo CORBAクライアント・アプリケーションは、このインタフェースを使用して、コンテキスト内のすべての名前を解決またはリストします。Oracle Tuxedo CORBAサーバー・アプリケーションでは、このオブジェクトを使用して、名前をアプリケーション・オブジェクトまたはネーミング・コンテキスト・オブジェクトにバインドします。リスト2-1は、NamingContext
オブジェクトのOMG IDLを示します。
module CosNaming {
interface NamingContext {
void bind(in Name, in Object obj)
raises(NotFound, CannotProceed, InvalidName, AlreadyBound);
void rebind(in Name, in Object obj)
raises(NotFound, CannotProceed, InvalidName);
void bind_context(in Name n, in NamingContext nc)
raises(NotFound, CannotProceed, InvalidName, AlreadyBound);
void rebind_context(in Name n, in NamingContext nc)
raises(NotFound, CannotProceed, InvalidName);
Object resolve(in Name n)
raises(NotFound, CannotProceed, InvalidName);
void unbind(in Name n)
raises(NotFound, CannotProceed, InvalidName);
NamingContext new_context
NamingContext bind_new_context(in Name n)
raises(NotFound, CannotProceed, InvalidName, AlreadyBound);
void destroy()
raises(NotEmpty);
void list(in unsigned long how_many,
out BindingList bl,
out BindingIterator bi);
}
}
最初のNameComponent
データ構造体に関連付けられているコンテキストを解決し、次に新しいコンテキストにオブジェクトをバインドして、指定したオブジェクトを指定の名前にバインドしようとします。
void bind(in Name
n
, in Object
obj
);
n
obj
AlreadyBound
InvalidName
NotFound
bind
でバインドされているネーミング・コンテキストは、解決するために複合名が渡されるときに名前解決に参加しません。
このメソッドは、指定したName
がNamingContext
オブジェクトに関連付けられている点を除いて、bind()
メソッドと同じです。
void bind_context(in Name
n
, in NamingContext
nc
);
n
nc
AlreadyBound
InvalidName
NotFound
BAD_PARAM
bind_context()
でバインドされているネーミング・コンテキストは、解決するために複合名が渡されるときに名前解決に参加します。
新しいコンテキストを作成し、このコンテキスト内で指定したName
にバインドします。
NamingContext bind_new_context(in Name n);
n
AlreadyBound
InvalidName
NotFound
このメソッドでは、CosNaming::NamingContext::new_context()
メソッドとCosNaming::NamingContext::bind_context()
メソッドを1つのメソッドにまとめます。
新しいNamingContext
オブジェクトへの参照を戻します。
NamingContext
オブジェクトを削除します。後でNamingContext
オブジェクトに対する呼出しを試みると、CORBA::NO_IMPLEMENT
例外が発生します。
void destroy();
NotEmpty
このメソッドを使用する前に、NamingContext
オブジェクトにバインドされているすべてのすべてのネーム・オブジェクトを、CosNaming::NamingContext::unbind()
メソッドを使用してアンバインドしてください。
このネーミング・コンテキストによって格納されているすべてのバインディングを戻します。
void list(in unsigned_long
how_many
,
out BindingListbl
,
out BindingIteratorbi
);
how_many
bl
NameComponent
オブジェクトを表すName
を格納するバインディングです)。各Name
は、長さ1の名前のシーケンスである単純な名前です。リスト内のバインディング数がhow_many
の値を超えることはありません。
bi
InvalidName
NotFound
このメソッドでは、名前のバインディングのシーケンスを戻します。bl
リストに該当するより多くの名前のバインディングが存在する場合は、BindingIterator
オブジェクトが戻されます。BindingIterator
オブジェクトを使用すると、バインディングの次のセットを取得できます。BindingList
(C++)オブジェクトでは、リクエストされた番号のバインディングがリストの最後にある場合は、その番号よりも小さい番号のバインディングを戻すことができます。bi
でNULL
参照が戻された場合、bl
にはすべてのバインディングが格納されています。
新しいネーミング・コンテキストを作成します。新規作成されたコンテキストは、最初はどのName
にもバインドされていません。
NamingContext new_context();
新しいネーミング・コンテキストをName.
にバインドするには、CosNaming::NamingContext::bind_context()
メソッドを使用します。
このメソッドは、bind()
メソッドと同じです。違いは、rebind
メソッドではAlreadyBound
例外が発生しないことです。指定したName
がすでに別のオブジェクトにバインドされている場合、そのバインディングは新しいバインディングで置き換えられます。
void rebind(in Namen
, in Objectobj
);
n
obj
InvalidName
NotFound
Name
またはそのコンポーネントの1つが見つからなかったことを示します。バインディングがすでに存在するか、バインディングの型が間違っているために例外が発生した場合、例外のrest_of_name
メンバーの長さは1になります。
rebind()
でバインドされているネーミング・コンテキストは、解決するために複合名が渡されるときに名前解決に参加しません。
このメソッドは、bind_context()
メソッドと同じです。違いは、rebind_context
メソッドではAlreadyBound
例外が発生しないことです。指定したName
がすでに別のオブジェクトにバインドされている場合、そのバインディングは新しいバインディングで置き換えられます。
void rebind_context(in Namen
, in NamingContextnc
);
n
nc
InvalidName
NotFound
rest_of_name
メンバーの長さは1になります。
rebind_context
でバインドされているネーミング・コンテキストは、解決するために複合名が渡されるときに名前解決に参加しません。
Object resolve(in Name n
);
n
InvalidName
NotFound
指定したName
は、オブジェクトのバインドに使用される名前と正確に一致する必要があります。CORBAネーム・サービスでは、オブジェクトの型を戻しません。オブジェクトを適切な型にナロー変換する操作は、クライアント・アプリケーションで実行します。
bind()
メソッドの逆演算を実行し、指定したName
に関連付けられたバインディングを削除します。
void unbind(in Name
n
);
n
InvalidName
NotFound
このメソッドでは、名前とオブジェクト間のバインディングを削除します。オブジェクトは削除されません。オブジェクトを削除するには、CosNaming::NamingContext::unbind()
メソッドを使用してから、CosNaming::NamingContext::destroy()
メソッドを使用します。
NamingContextExt
オブジェクトでは、CORBAネーム・サービスのURLおよび文字列化された名前を使用するための方法が提供されます。NamingContextExt
オブジェクトは、NamingContext
オブジェクトから派生したものです。CORBAネーム・サービスのルートはNamingContextExt
オブジェクト(ルートはNamingContext
オブジェクトでもあります)であることに注意してください。NamingContextExt
オブジェクトへの参照を取得するのに特別な操作は必要ありません。リスト2-2は、NamingContextExt
オブジェクトのOMG IDLを示しています。
module CosNaming {
interface NamingContextExt : NamingContext {
typedef string StringName;
typedef string Address;
typedef string URLString;
StringName to_string(in Name n)
raises(InvalidName);
Name to_name(in StringName sn)
raises(InvalidName);
exception InvalidAddress {};
URLString to_url(in Address addr, in StringName sn)
raises(InvalidAddress, InvalidName);
Object resolve_str(in StringName n)
raises(NotFound,
CannotProceed,
InvalidName,
AlreadyBound);
}
}
文字列化された名前を取得してName
に変換し、それを解決します。
object resolve_str(in StringName
n
);
n
InvalidName
NotFound
CosNaming:NamingContext::resolve()
メソッドと同じ方法で解決を実行する便利なメソッドです。このメソッドでは、文字列化された名前をName
オブジェクトではなく引数として受け付けます。文字列化された名前が無効か、メソッドでバインドできない場合は、エラーが戻されます。
文字列化された名前を取得し、Name
オブジェクトを戻します。
Name to_name(in StringName
sn
);
sn
InvalidName
このメソッドでは、文字列化された名前を受け付け、Name
オブジェクトを戻します。名前が無効の場合は、エラーが戻されます。
Name
オブジェクトを受け付け、文字列化された名前を戻します。
StringName to_string(in Name n
);
n
InvalidName
このメソッドでは、Name
を受け付け、文字列化された名前を戻します。名前が無効の場合は、エラーが戻されます。
URLと文字列化された名前を組み合せ、URL文字列を戻します。
CosNaming::NamingContextExt::to_URL(
)
URLString to_URL(in Addressaddr
, in StringNamesn
);
addr
sn
InvalidAddress
InvalidName
URLと文字列化された名前を組み合せたURL文字列を戻します。
BindingIterator
オブジェクトでは、クライアント・アプリケーションが、NamingContext
オブジェクトのlist
メソッドで戻されるバインディングのバインドされていないコレクションをたどることができます。BindingIterator
オブジェクトを使用すると、クライアント・アプリケーションは、各呼出しで取得されるバインディングの数を制御できます。BindingIterator
オブジェクトのメソッドの呼出し間でネーミング・コンテキストが変更されると、以降のnext_one()
メソッドまたはnext_n()
メソッドの呼出しの動作は、実装によって異なります。
クライアント・アプリケーションがBindingIterator
オブジェクトを作成しても、destroy
メソッドを呼び出さないと、クライアント・アプリケーションはリソース不足になる場合があります。CORBAネーム・サービスでは、クライアント・アプリケーションに警告することなく、バインディング・イテレータをいつでも破棄できます。BindingIterator
オブジェクトの呼出しでOBJECT_NOT_EXIST
例外を予期し、この例外を適切に処理できるようにクライアント・アプリケーションを記述する必要があります。
リスト2-3は、BindingIterator
オブジェクトのOMG IDLを示しています。
module CosNaming {
interface BindingIterator {
boolean next_one(out Binding b);
boolean next_n(in unsigned long how_many,
out BindingList b);
void destroy();
};
}
BindingIterator
オブジェクトを破棄し、オブジェクトに関連するメモリーを解放します。このメソッドの呼出しに失敗すると、メモリーの使用量が増加します。
void destroy();
destroy
メソッドの呼出し後にクライアント・アプリケーションがBindingIterator
オブジェクトに対する操作を呼び出すと、OBJECT_NOT_EXIST
例外が発生します。
リストからリクエストされたバインディングの番号を格納するBindingList
データ構造体を戻します。戻されるバインディングの番号は、リクエストされた数がリストを超えている場合は、それよりも少なくなります。
boolean next_n(in unsigned_longhow_many
, out BindingListbl
);
how_many
bl
BAD_PARAM
リストの上限に達した場合にCORBA::FALSE
が戻されます。それ以外の場合は、CORBA::TRUE
が戻されます。
boolean next_one(out Binding b
);
b
リストの上限に達した場合にCORBA::FALSE
が戻されます。それ以外の場合は、CORBA::TRUE
が戻されます。
この項では、CORBAネーム・サービスで発生する例外について説明します。
exception AlreadyBound{};
この例外は、指定した名前にオブジェクトがすでにバインドされている場合に発生します。1つのコンテキストで名前にバインドできるオブジェクトは1つのみです。
exception CannotProceed{};
NamingContext
cxt
Name
rest_of_name
この例外は、予期しない例外が発生して、メソッドで適切に処理できない場合に発生します。
exception InvalidAddress{};
exception InvalidName{};
Name
が無効の場合に発生します。長さがゼロの名前は無効です。
exception NotEmpty{};
この例外は、バインディングを含むNamingContext
オブジェクトでdestroy()
メソッドが使用されている場合に発生します。NamingContext
オブジェクトは、破棄する前に空になっている必要があります。
exception NotFound{NotFoundReason why; Name rest_of_name;};
why
rest_of_name
この例外は、名前のコンポーネントでバインディングを識別しないか、バインディングの型が実行中の操作に対して間違っている場合に発生します。why
パラメータはエラーの理由を示します。rest_of_name
パラメータはエラーの原因を示します。次の原因が表示されます。
![]() ![]() ![]() |