Package nablarch.fw.messaging
Class ResponseMessage
java.lang.Object
nablarch.fw.messaging.InterSystemMessage<SendingMessage>
nablarch.fw.messaging.SendingMessage
nablarch.fw.messaging.ResponseMessage
- All Implemented Interfaces:
Result
- Direct Known Subclasses:
StructuredResponseMessage
本システムに対する要求電文への応答電文を表すクラス。
本クラスでは、RequestMessageと同様、応答電文の内容をフレームワークヘッダ部と
業務データ部に分離して管理しており、業務ロジックからは業務データ部しか操作できない
ようになっている。
メッセージボディを直列化する際には、フレームワークヘッダ部と業務データ部をそれぞれ
直列化して連結したものを返す。
-
Nested Class Summary
Nested classes/interfaces inherited from class nablarch.fw.messaging.InterSystemMessage
InterSystemMessage.HeaderName
Nested classes/interfaces inherited from interface nablarch.fw.Result
Result.ClientError, Result.Error, Result.MultiStatus, Result.NotFound, Result.Success
-
Constructor Summary
ConstructorDescriptionResponseMessage
(FwHeader fwHeader, ReceivedMessage message) 受信電文に対する応答電文を作成する。ResponseMessage
(RequestMessage message) 要求電文に対する応答電文を作成する。 RequestMessage#reply() から呼ばれることを想定している。 -
Method Summary
Modifier and TypeMethodDescription電文のデータ部に指定したレコードを追加する。電文のデータ部に、出力時に使用するデータレイアウト(レコードタイプ)を指定してレコードを追加する。電文のデータ部に、出力時に使用するデータレイアウト(レコードタイプ)を指定してレコードを追加する。電文のデータ部に、指定したレコードを追加する。byte[]
メッセーボディのバイナリ表現を返す。 送信(仕向)電文の場合はデータレコードをレコードフォーマッタで直列化したものを返す。 受信(被仕向)電文の場合はパース前の送信電文の内容をそのまま返す。フレームワーク制御ヘッダを取得する。処理結果に関する詳細情報を返す。int
ステータスコードを返す。boolean
処理が正常終了したかどうかを返す。フレームワークヘッダ定義を設定する。業務処理の結果を設定する。setStatusCodeHeader
(String statusCode) フレームワーク制御ヘッダの処理結果コードの値を設定する。void
実行時例外を送出し、現在の業務トランザクションをロールバックさせ、 この電文の内容をエラー応答として送信する。void
実行時例外を送出し、現在の業務トランザクションをロールバックさせ、 この電文の内容をエラー応答として送信する。Methods inherited from class nablarch.fw.messaging.SendingMessage
getBodyStream, getTimeToLive, setTimeToLive
Methods inherited from class nablarch.fw.messaging.InterSystemMessage
getCorrelationId, getDestination, getFormatter, getHeader, getHeaderMap, getMessageId, getParam, getParamMap, getRecordOf, getRecords, getRecordsOf, getReplyTo, setCorrelationId, setDestination, setFormatter, setHeader, setHeaderMap, setMessageId, setReplyTo
-
Constructor Details
-
ResponseMessage
受信電文に対する応答電文を作成する。- Parameters:
fwHeader
- 応答電文に付加するフレームワーク制御ヘッダmessage
- 受信電文
-
ResponseMessage
要求電文に対する応答電文を作成する。 RequestMessage#reply() から呼ばれることを想定している。- Parameters:
message
- 要求電文オブジェクト
-
-
Method Details
-
getBodyBytes
public byte[] getBodyBytes()メッセーボディのバイナリ表現を返す。 送信(仕向)電文の場合はデータレコードをレコードフォーマッタで直列化したものを返す。 受信(被仕向)電文の場合はパース前の送信電文の内容をそのまま返す。 この実装では、フレームワーク制御ヘッダ部と業務データ部をそれぞれ直列化し、 連結したものを返す。 ただし、フレームワーク制御ヘッダを直列化する際、フレームワーク制御ヘッダ定義 を使用する。これは、通常MessageReplyHandler
によって設定される。- Overrides:
getBodyBytes
in classSendingMessage
- Returns:
- メッセーボディのバイナリ表現
-
throwAsError
実行時例外を送出し、現在の業務トランザクションをロールバックさせ、 この電文の内容をエラー応答として送信する。- Parameters:
e
- 起因となる例外
-
throwAsError
public void throwAsError()実行時例外を送出し、現在の業務トランザクションをロールバックさせ、 この電文の内容をエラー応答として送信する。 -
getStatusCode
public int getStatusCode()ステータスコードを返す。- Specified by:
getStatusCode
in interfaceResult
- Returns:
- ステータスコード
-
getMessage
処理結果に関する詳細情報を返す。- Specified by:
getMessage
in interfaceResult
- Returns:
- 詳細情報
-
isSuccess
public boolean isSuccess()処理が正常終了したかどうかを返す。 -
setResult
業務処理の結果を設定する。- Parameters:
result
- 業務処理結果- Returns:
- このオブジェクト自体
-
getFwHeader
フレームワーク制御ヘッダを取得する。- Returns:
- フレームワーク制御ヘッダ
-
setFwHeaderDefinition
フレームワークヘッダ定義を設定する。- Parameters:
def
- フレームワーク制御ヘッダ- Returns:
- このオブジェクト自体
-
setStatusCodeHeader
フレームワーク制御ヘッダの処理結果コードの値を設定する。- Parameters:
statusCode
- 処理結果コード- Returns:
- このオブジェクト自体
-
addRecord
電文のデータ部に、指定したレコードを追加する。 出力時に使用するデータレイアウト(レコードタイプ)は、record
の内容から自動的に判別される。- Overrides:
addRecord
in classSendingMessage
- Parameters:
record
- レコード内容- Returns:
- このオブジェクト自体
-
addRecord
@Published(tag="architect") public ResponseMessage addRecord(String recordType, Map<String, ?> record) 電文のデータ部に、出力時に使用するデータレイアウト(レコードタイプ)を指定してレコードを追加する。recordType
にnull
を渡した場合、SendingMessage.addRecord(Map)
と同様の処理を行う。- Overrides:
addRecord
in classSendingMessage
- Parameters:
recordType
- レコードタイプrecord
- レコード内容- Returns:
- このオブジェクト自体
-
addRecord
電文のデータ部に指定したレコードを追加する。 出力時に使用するデータレイアウト(レコードタイプ)は、渡されたデータの内容から自動的に判別される。- Overrides:
addRecord
in classSendingMessage
- Parameters:
recordObj
- レコード内容を表現したオブジェクト- Returns:
- このオブジェクト自体
-
addRecord
電文のデータ部に、出力時に使用するデータレイアウト(レコードタイプ)を指定してレコードを追加する。recordType
にnull
を渡した場合、SendingMessage.addRecord(Object)
と同様の処理を行う。- Overrides:
addRecord
in classSendingMessage
- Parameters:
recordType
- レコードタイプrecordObj
- レコード内容を表現したオブジェクト- Returns:
- このオブジェクト自体
-