Class HttpMessagingClient

java.lang.Object
nablarch.fw.messaging.realtime.http.client.HttpMessagingClient
All Implemented Interfaces:
MessageSenderClient

@Published(tag="architect") public class HttpMessagingClient extends Object implements MessageSenderClient
HTTPを利用したメッセージング機能の実装。
Author:
Masaya Seko
  • Field Details

    • SYNCMESSAGE_STATUS_CODE

      public static final String SYNCMESSAGE_STATUS_CODE
      SyncMessageのヘッダレコードからステータスコードを取り出すために使用するキー
      See Also:
  • Constructor Details

    • HttpMessagingClient

      public HttpMessagingClient()
  • Method Details

    • sendSync

      public SyncMessage sendSync(MessageSenderSettings settings, SyncMessage requestMessage) throws MessagingException
      HTTPを使用したリアルタイム通信通信を行う。
      Specified by:
      sendSync in interface MessageSenderClient
      Parameters:
      settings - MessageSenderの設定情報
      requestMessage - 要求電文
      Returns:
      応答電文
      Throws:
      MessagingException - 通信に失敗した際に送出される。
    • addCommonValue

      protected void addCommonValue(HttpProtocolClient.HttpRequestMethodEnum httpMethod, MessageSenderSettings settings, SyncMessage requestMessage)
      要求電文に、共通プロトコルヘッダ相当部分及びフレームワーク制御ヘッダ部で使用する要素を追加する。
      Parameters:
      httpMethod - HTTPメソッド
      settings - MessageSenderの設定情報
      requestMessage - 要求電文
    • createHttpProtocolClient

      protected HttpProtocolClient createHttpProtocolClient()
      HTTPプロトコルを実装したクラスのインスタンスを生成する。
      Returns:
      HTTPプロトコルを用いた通信を行うクラスのインスタンス
    • initHttpProtocolClient

      protected void initHttpProtocolClient(HttpProtocolClient argHttpProtocolClient, MessageSenderSettings settings, String mimeType)
      HTTPプロトコルを実装したクラスのインスタンスの初期化を行う。
      Parameters:
      argHttpProtocolClient - 初期化対象のHttpProtocolClientのインスタンス
      settings - MessageSenderの設定情報
      mimeType - 送信するデータの種別
    • getAccept

      protected String getAccept()
      レスポンスの本文として受信可能なタイプを取得します
      Returns:
      レスポンスの本文として受信可能なタイプ
    • mapToUriString

      protected String mapToUriString(String preUri, HttpProtocolClient.HttpRequestMethodEnum httpMethod, SyncMessage requestMessage)
      URIを生成する。

      このメソッドはURI生成ルールのカスタマイズのために存在している。本クラスの実装では、引数preUriを返却する。

      Parameters:
      preUri - メッセージ送信定義に記述されているURI
      httpMethod - HTTPメソッド
      requestMessage - 要求電文
      Returns:
      URI
    • mapToQueryMap

      protected Map<String,String> mapToQueryMap(String preUri, HttpProtocolClient.HttpRequestMethodEnum httpMethod, SyncMessage requestMessage)
      クエリストリングを生成する。

      このメソッドはクエリストリング生成ルールのカスタマイズのために存在している。本クラスの実装では、空のMapを返す。

      Parameters:
      preUri - メッセージ送信定義に記述されているURI
      httpMethod - HTTPメソッド
      requestMessage - 要求電文
      Returns:
      URI
    • mapToHeaderMap

      protected Map<String,List<String>> mapToHeaderMap(SyncMessage requestMessage)
      HTTPヘッダに含める内容を生成する。
      Parameters:
      requestMessage - 要求電文
      Returns:
      HTTPヘッダに含める内容を格納したMap
    • mapToBodyString

      HTTP通信のボディ部を生成する。
      Parameters:
      uri - 接続先
      httpMethod - HTTPメソッド
      requestMessage - 要求電文
      Returns:
      変換後の文字列
      Throws:
      HttpMessagingInvalidDataFormatException - 電文フォーマット変換に失敗した場合に送出される。
    • getRequestContentsType

      protected String getRequestContentsType(HttpProtocolClient.HttpRequestMethodEnum httpMethod, SimpleDataConvertResult requestBodyDataConvertResult)
      送信時に設定するコンテンツタイプを取得する。
      Parameters:
      httpMethod - HTTPメソッド
      requestBodyDataConvertResult - 本文のデータ変換結果
      Returns:
      コンテンツタイプ
    • execute

      protected HttpResult execute(HttpProtocolClient httpProtocolClient, HttpProtocolClient.HttpRequestMethodEnum httpMethod, String uri, Map<String,List<String>> headerInfo, Map<String,String> urlParams, String charset, String bodyText)
      HTTPリクエストを送出する。
      Parameters:
      httpProtocolClient - HTTPリクエストを発行するオブジェクト
      httpMethod - HTTPメソッド
      uri - 送信先
      headerInfo - HTTPリクエストのヘッダ情報
      urlParams - URLパラメータ
      charset - 文字コード
      bodyText - HTTPリクエストの本文
      Returns:
      送信結果
    • createCharHttpStreamReader

      protected HttpInputStreamReader createCharHttpStreamReader()
      HTTPリクエストを発行後、OutputStreamを読み取り結果を返却させるためのIFを生成する。
      Returns:
      OutputStreamを読み取り結果を返却させるためのIF
    • createCharHttpStreamWritter

      protected HttpOutputStreamWriter createCharHttpStreamWritter(String charset, String bodyText)
      HTTPリクエストを発行時の送信内容を保持するオブジェクトを生成する。
      Parameters:
      charset - 文字コード
      bodyText - 送信時の本文
      Returns:
      送信内容を表すオブジェクト
    • headerToMap

      protected Map<String,Object> headerToMap(SyncMessage requestMessage, HttpResult httpResult)
      返信のヘッダ部分を解析し、応答電文に設定するデータを生成する。
      Parameters:
      requestMessage - 要求電文
      httpResult - 送信結果
      Returns:
      解析後のMap
    • bodyStringToMap

      protected SimpleDataConvertResult bodyStringToMap(String uri, HttpProtocolClient.HttpRequestMethodEnum httpMethod, SyncMessage requestMessage, HttpResult httpResult) throws HttpMessagingInvalidDataFormatException
      返信のボディ部分を解析し、応答電文に設定するデータを生成する。
      Parameters:
      uri - 接続先
      httpMethod - HTTPメソッド
      requestMessage - 要求電文
      httpResult - 送信結果
      Returns:
      解析後のMap
      Throws:
      HttpMessagingInvalidDataFormatException - 電文フォーマット変換に失敗した場合に送出される。
    • getResponseMessageFormatFileNamePattern

      protected String getResponseMessageFormatFileNamePattern()
      応答電文のデータフォーマット定義ファイル名パターンを取得する。
      Returns:
      応答電文のデータフォーマット定義ファイル名パターン
    • getRequestMessageFormatFileNamePattern

      protected String getRequestMessageFormatFileNamePattern()
      要求電文のフォーマット定義ファイル名のパターンを取得する。
      Returns:
      要求電文のフォーマット定義ファイル名のパターン
    • getUserIdToFormatKey

      public String getUserIdToFormatKey()
      ユーザIDとフォーマット定義ファイル上のキーとの対応を取得する。
      Returns:
      フォーマット定義ファイル上のキー
    • setUserIdToFormatKey

      public void setUserIdToFormatKey(String userIdToFormatKey)
      ユーザIDとフォーマット定義ファイル上のキーとの対応を設定する。
      Parameters:
      userIdToFormatKey - フォーマット定義ファイル上のキー
    • getExistBodyHttpMethod

      protected List<String> getExistBodyHttpMethod()
      送信にbody部が存在するHTTPメソッドのリストを取得する。
      Returns:
      送信にbody部が存在するHTTPメソッドのリスト
    • getQueryStringEncoding

      public String getQueryStringEncoding()
      クエリストリングをエンコードする際に使用する文字コードを取得する。
      Returns:
      文字コード
    • setQueryStringEncoding

      public void setQueryStringEncoding(String queryStringEncoding)
      クエリストリングをエンコードする際に使用する文字コードを設定する。
      Parameters:
      queryStringEncoding - 文字コード