public abstract class ServerRequest extends Object
Request
オブジェクトに似ています。
ORB により要求が具体化されて、Dynamic Implementation Routine (DIR) に送られます。動的サーバント (DIR) は DynamicImplementation
クラスを実装することにより作成され、1 つの invoke
メソッドを持ちます。このメソッドは ServerRequest
オブジェクトを受け取ります。
abstract クラス ServerRequest
により、メソッド名、引数、およびリクエストコンテキストにアクセスするメソッド、およびリクエストの結果を戻り値または例外として設定するメソッドが定義されます。
要求の引数にアクセスする際、引数に関するまとまった情報が存在しないため、予期される引数の型情報を DIR が提供する必要があります。この情報は NamedValue
オブジェクトのリストである NVList
により提供されます。各 NamedValue
オブジェクトには Any
オブジェクトが含まれ、Any オブジェクトが引数の型を表す TypeCode
オブジェクトを保持します。
同様に、予期される結果または例外用に応答の型情報を指定する必要があるため、result
および except
メソッドがパラメータとして Any
オブジェクトを取ります。
コンストラクタと説明 |
---|
ServerRequest() |
修飾子と型 | メソッドと説明 |
---|---|
void |
arguments(NVList args)
メソッドのパラメータ型を指定して、in および inout 引数の値を取得します。
|
abstract Context |
ctx()
操作が属性アクセスでなく操作の IDL 定義にコンテキスト式が指定されている場合は、操作の IDL に指定されたコンテキスト情報を返します。そうでない場合は、nil
Context 参照を返します。 |
void |
except(Any any)
非推奨。
set_exception() を使用してください
|
String |
op_name()
非推奨。
operation() を使用してください
|
String |
operation()
org.omg.CORBA.NO_IMPLEMENT 例外をスローします。 |
void |
params(NVList params)
非推奨。
メソッドを使用してください
arguments |
void |
result(Any any)
非推奨。
メソッドを使用してください
set_result |
void |
set_exception(Any any)
org.omg.CORBA.NO_IMPLEMENT 例外をスローします。 |
void |
set_result(Any any)
org.omg.CORBA.NO_IMPLEMENT 例外をスローします。 |
@Deprecated public String op_name()
_get_<attribute_name>
と _set_<attribute_name>
になります。public String operation()
org.omg.CORBA.NO_IMPLEMENT
例外をスローします。
呼び出される操作名を取得します。OMG IDL の規則では、これらの名前はこのオブジェクトの「最上位の派生」インタフェースでサポートされるすべての操作の中で一意である必要があります。属性の取得と設定の操作名は、それぞれ _get_<attribute_name>
と _set_<attribute_name>
になります。
CORBA
パッケージに実装されていない機能についてのコメント@Deprecated public void params(NVList params)
arguments
を使用してください
このメソッドは非推奨です。代わりに arguments
メソッドを使用してください。
set_exception
メソッドが呼び出されない場合、DIR はメソッドのシグニチャーにパラメータが含まれなくても 1 度だけこのメソッドを呼び出す必要があります。 arguments
または set_exception
メソッドが呼び出された場合、同じ ServerRequest
オブジェクトに対して arguments
を呼び出すと BAD_INV_ORDER
システム例外がスローされます。DIR は、操作のパラメータ型を説明する TypeCode と Flag で初期化された NVList を、IDL 仕様で指定された順序 (左から右) で arguments
メソッドに渡す必要があります。潜在的に異なる NVList が、指定された in および inout 引数値を使用して arguments
から返されます。set_exception
メソッドを呼び出さない場合、DIR は、復帰前に、返される NVList にすべての out 引数の戻り値を指定する必要があります。また、すべての inout 引数の戻り値を変更する場合もあります。
params
- メソッドの引数 (NVList
オブジェクトの形式)public void arguments(NVList args)
set_exception
メソッドが呼び出されない場合、DIR はメソッドのシグニチャーにパラメータが含まれなくても 1 度だけこのメソッドを呼び出す必要があります。 arguments
または set_exception
メソッドが呼び出された場合、同じ ServerRequest
オブジェクトに対して arguments
を呼び出すと BAD_INV_ORDER
システム例外がスローされます。DIR は、操作のパラメータ型を説明する TypeCode と Flag で初期化された NVList を、IDL 仕様で指定された順序 (左から右) で arguments
メソッドに渡す必要があります。潜在的に異なる NVList が、指定された in および inout 引数値を使用して arguments
から返されます。set_exception
メソッドを呼び出さない場合、DIR は、復帰前に、返される NVList にすべての out 引数の戻り値を指定する必要があります。また、すべての inout 引数の戻り値を変更する場合もあります。args
- メソッドの引数 (NVList の形式)CORBA
パッケージに実装されていない機能についてのコメント@Deprecated public void result(Any any)
set_result
を使用してください
このメソッドは非推奨です。代わりに set_result
メソッドを使用してください。
set_exception
メソッドが呼び出されず、呼び出されたメソッドの結果型が void 以外の場合、DIR の復帰前に set_result
メソッドを 1 度だけ呼び出す必要があります。操作の結果型が void の場合、オプションで、tk_void
型の Any
オブジェクトを使用して、set_result
メソッドを 1 度呼び出すことができます。arguments
メソッドが呼び出される前、あるいは set_result
または set_exception
メソッドが呼び出されたあとに set_result
メソッドを呼び出すと、BAD_INV_ORDER 例外がスローされます。IDL 操作にコンテキスト式が含まれるか、引数に渡された NVList にクライアントから渡されたすべてのパラメータが記述されない場合、それ以前に ctx
メソッドを呼び出さないで set_result
メソッドを呼び出すと、MARSHAL システム例外がスローされる場合があります。
any
- 設定する戻り値を含む Any
オブジェクトpublic void set_result(Any any)
org.omg.CORBA.NO_IMPLEMENT
例外をスローします。
呼び出しの任意の戻り値を指定します。set_exception
メソッドが呼び出されず、呼び出されたメソッドの結果型が void 以外の場合、DIR の復帰前に set_result
メソッドを 1 度だけ呼び出す必要があります。操作の結果型が void の場合、オプションで、tk_void
型の Any
オブジェクトを使用して、set_result
メソッドを 1 度呼び出すことができます。arguments
メソッドが呼び出される前、あるいは set_result
または set_exception
メソッドが呼び出されたあとに set_result
メソッドを呼び出すと、BAD_INV_ORDER 例外がスローされます。IDL 操作にコンテキスト式が含まれるか、引数に渡された NVList にクライアントから渡されたすべてのパラメータが記述されない場合、それ以前に ctx
メソッドを呼び出さないで set_result
メソッドを呼び出すと、MARSHAL システム例外がスローされる場合があります。
any
- 設定する戻り値を含む Any
オブジェクトCORBA
パッケージに実装されていない機能についてのコメント@Deprecated public void except(Any any)
any
- 例外を含む Any
オブジェクトpublic void set_exception(Any any)
org.omg.CORBA.NO_IMPLEMENT
例外をスローします。
指定された例外をクライアントに返します。このメソッドは DIR から呼び出され、いつでも呼び出すことができます。このメソッドに渡された Any
オブジェクトには、システム例外または呼び出される操作の IDL 定義で指定されたユーザー例外のいずれかを含める必要があります。例外が指定されていない Any
を渡すと、BAD_PARAM システム例外がスローされます。リストされていないユーザー例外を渡すと、DIR が BAD_PARAM システム例外を受け取るか、クライアントが UNKNOWN_EXCEPTION システム例外を受け取ります。
any
- 例外を含む Any
オブジェクトBAD_PARAM
- 指定された Any
オブジェクトに例外が含まれない、または例外が、リストされていないユーザー例外である場合UNKNOWN_EXCEPTION
- 指定された例外がリストされていないユーザー例外で、DIR が BAD_PARAM 例外を受け取らなかった場合CORBA
パッケージに実装されていない機能についてのコメントpublic abstract Context ctx()
Context
参照を返します。arguments
メソッドが呼び出される前、あるいは ctx
、set_result
、または set_exception
メソッドが呼び出されたあとに ctx
メソッドを呼び出すと、BAD_INV_ORDER システム例外がスローされます。BAD_INV_ORDER
- (1) arguments
メソッドの前に ctx
メソッドが呼び出されるか、(2) set_result
または set_exception
の呼び出し後に ctx
が呼び出される場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.