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
オブジェクトを取ります。
DynamicImplementation
, NVList
, NamedValue
コンストラクタと説明 |
---|
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, 2014, Oracle and/or its affiliates. All rights reserved.