Class MessageSender

java.lang.Object
nablarch.fw.messaging.MessageSender

@Published public final class MessageSender extends Object
対外システムに対するメッセージの同期送信を行うユーティリティクラス。

本ユーティリティはキューを使用した通信と、HTTP通信をサポートする。

キューを使用した通信について
本ユーティリティはフレームワーク制御ヘッダの利用を前提としており、 再送電文フラグを利用した再送/タイムアウト制御等の機能を実装している。
キューを使用した通信では、カレントスレッドに紐づけられているMessagingContextを利用してメッセージ送信を行う。 そのため、MessagingContextHandlerをハンドラキューに追加する必要がある。 MessagingContextの設定方法についてはMessageSenderSettings(String)を参照。

Author:
Kiyohito Itoh
  • Method Details

    • sendSync

      public static SyncMessage sendSync(SyncMessage requestMessage) throws MessageSendSyncTimeoutException
      対外システムにメッセージを送信し、応答された電文を返す。

      電文の設定情報について
      MessageSenderSettings(String)を実行して、対象リクエストの設定情報を取得する。

      要求電文の作成について
      要求電文の作成処理はSyncMessageConvertorに委譲する。 SyncMessageConvertorの取得方法は、getSyncMessageConvertor(MessageSenderSettings)メソッドのJavaDocを参照。 デフォルトでは、フレームワークが提供するSyncMessageConvertorをそのまま使用する。

      メッセージの再送について
      キューを使用した通信では、設定によりリトライ回数が指定されている場合、 タイムアウト発生時に指定された回数まで再送を行う。
      HTTP通信では再送を行わない。

      メッセージ送受信中にエラーが発生した場合、SyncMessagingEventHookにエラー処理を委譲する。 SyncMessagingEventHookの設定方法はMessageSenderSettings(String)のJavaDocを参照。

      Parameters:
      requestMessage - 要求電文
      Returns:
      応答電文
      Throws:
      IllegalArgumentException - 要求電文の設定情報に問題がある場合
      MessageSendSyncTimeoutException - タイムアウトが発生し、同期送信が正常終了しなかった場合