public abstract class MessagingAction extends DbAccessSupport implements Handler<RequestMessage,ResponseMessage>, TransactionEventCallback<RequestMessage>
TransactionEventCallback.Provider<TData>
REQUEST_DATA_REQUEST_SCOPE_KEY
コンストラクタと説明 |
---|
MessagingAction()
MessagingActionオブジェクトを生成する。
|
修飾子とタイプ | メソッドと説明 |
---|---|
ResponseMessage |
handle(RequestMessage req,
ExecutionContext ctx)
入力データに対する処理を実行する。
|
protected ResponseMessage |
onError(java.lang.Throwable e,
RequestMessage request,
ExecutionContext context)
業務トランザクションが異常終了した場合の処理を実行する。
|
protected abstract ResponseMessage |
onReceive(RequestMessage request,
ExecutionContext context)
要求電文毎にフレームワークから起動され、要求電文の内容をもとに業務処理を実行する。
|
void |
transactionAbnormalEnd(java.lang.Throwable e,
RequestMessage data,
ExecutionContext ctx)
入力データに対する処理で異常が発生した場合に呼ばれる。
|
java.lang.Class<TransactionManagementHandler> |
transactionCallBackWatchType()
このクラスでは、
TransactionManagementHandler 上のトランザクションを監視する。 |
void |
transactionNormalEnd(RequestMessage data,
ExecutionContext ctx)
入力データに対する処理が正常に処理された場合に呼ばれる。
|
protected boolean |
usesAutoRead()
電文のメッセージボディの内容をデフォルトのフォーマッタを使用して
自動的に読み込むかどうかを指定する。
|
countByParameterizedSql, countByStatementSql, getParameterizedSqlStatement, getParameterizedSqlStatement, getSqlCStatement, getSqlPStatement, search
@Published public MessagingAction()
@Published protected abstract ResponseMessage onReceive(RequestMessage request, ExecutionContext context)
request
- 要求電文オブジェクトcontext
- 実行コンテキスト@Published protected ResponseMessage onError(java.lang.Throwable e, RequestMessage request, ExecutionContext context)
ResponseMessage
)を返却したい場合は、本メソッドをオーバーライドすること。
デフォルト実装ではなにもしない。
注意:
以下のケースでは業務アクションへのディスパッチが行われる前にエラーが
発生するため、エラー応答電文の内容を制御することはできない。
e
- 発生したエラーオブジェクトrequest
- 要求電文オブジェクトcontext
- 実行コンテキストnull
を返した場合はフレームワークが編集した電文が送信される。protected boolean usesAutoRead()
public ResponseMessage handle(RequestMessage req, ExecutionContext ctx)
usesAutoRead()
を呼ぶ。
その結果がfalseであればonReceive(RequestMessage, ExecutionContext)
に処理を移譲し、その結果を返す。
usesAutoRead()
がtrueを返す場合は、業務ロジックに入る前に業務データ部の
フォーマッタを使用して、メッセージボディから1レコード分のデータを読み込む。
業務データ部からレコードが読み込めない場合、または、1レコードの読み込みが完了
した時点でデータ終端に達しない場合はフォーマット不正のエラーを送出する。handle
インタフェース内 Handler<RequestMessage,ResponseMessage>
req
- 入力データctx
- 実行コンテキストpublic java.lang.Class<TransactionManagementHandler> transactionCallBackWatchType()
TransactionManagementHandler
上のトランザクションを監視する。public void transactionAbnormalEnd(java.lang.Throwable e, RequestMessage data, ExecutionContext ctx)
transactionAbnormalEnd
インタフェース内 TransactionEventCallback<RequestMessage>
e
- 発生したエラーdata
- 入力データctx
- 実行コンテキストpublic void transactionNormalEnd(RequestMessage data, ExecutionContext ctx)
transactionNormalEnd
インタフェース内 TransactionEventCallback<RequestMessage>
data
- 入力データctx
- 実行コンテキスト