public class MessageReplyHandler extends java.lang.Object implements Handler<java.lang.Object,Result>
- トランザクション制御ハンドラ 同ハンドラとの前後関係は、2相コミットを使用するか否かで変わる。 a) 2相コミットを使用する場合。 DBトランザクションとJMSトランザクションをトランザクションマネージャー側で まとめてコミットするので、トランザクション制御ハンドラは、このハンドラより 先に実行されなければならない。 b) 2相コミットを使用しない場合。 このハンドラが応答を送信する前に、DBトランザクション終了させ、業務処理の結果を 確定させる必要がある。 このため、トランザクション制御ハンドラはこのハンドラの後に実行されなければ ならない。 - データリードハンドラ 要求電文のフォーマット不正に起因する例外はデータリーダで発生する可能性があり、 そのエラー応答電文をこのハンドラで送出する必要がある。 このため、データリードハンドラはこのハンドラの後に実行されなければならない。
1. 後続ハンドラが正常終了していた(=応答電文オブジェクトがリターンされていた)場合。 送信エラーを再送出する。 2. 後続ハンドラが異常終了していた(=実行時例外/エラーが送出されていた)場合。 送信エラーの内容をWarningレベルのログに出力した上で、 後続ハンドラが送出した例外を再送出する。
Constructor and Description |
---|
MessageReplyHandler()
コンストラクタ。
|
Modifier and Type | Method and Description |
---|---|
protected ResponseMessage |
errorResponseOf(java.lang.Throwable e,
ExecutionContext ctx)
後続ハンドラの処理中に未捕捉の例外が発生した場合に応答するエラー電文を作成する。
|
protected java.lang.String |
getStatusCode(ResponseMessage message)
応答電文のフレームワーク制御ヘッダに設定するステータスコードを取得する。
デフォルトの設定では、Result.getStatusCode() の戻り値と同じ値を
フレームワーク制御ヘッダーに指定する。
プロジェクト固有のステータスコード体系を定義している場合は、本メソッドを
オーバーライドすること。
|
Result |
handle(java.lang.Object data,
ExecutionContext ctx)
入力データに対する処理を実行する。
|
MessageReplyHandler |
setFwHeaderDefinition(FwHeaderDefinition def)
応答電文中のフレームワーク制御ヘッダ定義を設定する。
|
@Published(tag="architect") public MessageReplyHandler()
public Result handle(java.lang.Object data, ExecutionContext ctx)
@Published(tag="architect") protected ResponseMessage errorResponseOf(java.lang.Throwable e, ExecutionContext ctx)
ctx
- 実行コンテキストe
- 発生した例外protected java.lang.String getStatusCode(ResponseMessage message)
message
- 応答電文オブジェクトpublic MessageReplyHandler setFwHeaderDefinition(FwHeaderDefinition def)
def
- フレームワーク制御ヘッダ定義