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 Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
addCommonValue
(HttpProtocolClient.HttpRequestMethodEnum httpMethod, MessageSenderSettings settings, SyncMessage requestMessage) 要求電文に、共通プロトコルヘッダ相当部分及びフレームワーク制御ヘッダ部で使用する要素を追加する。protected SimpleDataConvertResult
bodyStringToMap
(String uri, HttpProtocolClient.HttpRequestMethodEnum httpMethod, SyncMessage requestMessage, HttpResult httpResult) 返信のボディ部分を解析し、応答電文に設定するデータを生成する。protected HttpInputStreamReader
HTTPリクエストを発行後、OutputStreamを読み取り結果を返却させるためのIFを生成する。protected HttpOutputStreamWriter
createCharHttpStreamWritter
(String charset, String bodyText) HTTPリクエストを発行時の送信内容を保持するオブジェクトを生成する。protected HttpProtocolClient
HTTPプロトコルを実装したクラスのインスタンスを生成する。protected HttpResult
execute
(HttpProtocolClient httpProtocolClient, HttpProtocolClient.HttpRequestMethodEnum httpMethod, String uri, Map<String, List<String>> headerInfo, Map<String, String> urlParams, String charset, String bodyText) HTTPリクエストを送出する。protected String
レスポンスの本文として受信可能なタイプを取得します送信にbody部が存在するHTTPメソッドのリストを取得する。クエリストリングをエンコードする際に使用する文字コードを取得する。protected String
getRequestContentsType
(HttpProtocolClient.HttpRequestMethodEnum httpMethod, SimpleDataConvertResult requestBodyDataConvertResult) 送信時に設定するコンテンツタイプを取得する。protected String
要求電文のフォーマット定義ファイル名のパターンを取得する。protected String
応答電文のデータフォーマット定義ファイル名パターンを取得する。ユーザIDとフォーマット定義ファイル上のキーとの対応を取得する。headerToMap
(SyncMessage requestMessage, HttpResult httpResult) 返信のヘッダ部分を解析し、応答電文に設定するデータを生成する。protected void
initHttpProtocolClient
(HttpProtocolClient argHttpProtocolClient, MessageSenderSettings settings, String mimeType) HTTPプロトコルを実装したクラスのインスタンスの初期化を行う。protected SimpleDataConvertResult
mapToBodyString
(String uri, HttpProtocolClient.HttpRequestMethodEnum httpMethod, SyncMessage requestMessage) HTTP通信のボディ部を生成する。mapToHeaderMap
(SyncMessage requestMessage) HTTPヘッダに含める内容を生成する。mapToQueryMap
(String preUri, HttpProtocolClient.HttpRequestMethodEnum httpMethod, SyncMessage requestMessage) クエリストリングを生成する。protected String
mapToUriString
(String preUri, HttpProtocolClient.HttpRequestMethodEnum httpMethod, SyncMessage requestMessage) URIを生成する。sendSync
(MessageSenderSettings settings, SyncMessage requestMessage) HTTPを使用したリアルタイム通信通信を行う。void
setQueryStringEncoding
(String queryStringEncoding) クエリストリングをエンコードする際に使用する文字コードを設定する。void
setUserIdToFormatKey
(String userIdToFormatKey) ユーザIDとフォーマット定義ファイル上のキーとの対応を設定する。
-
Field Details
-
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 interfaceMessageSenderClient
- 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
HTTPプロトコルを実装したクラスのインスタンスを生成する。- Returns:
- HTTPプロトコルを用いた通信を行うクラスのインスタンス
-
initHttpProtocolClient
protected void initHttpProtocolClient(HttpProtocolClient argHttpProtocolClient, MessageSenderSettings settings, String mimeType) HTTPプロトコルを実装したクラスのインスタンスの初期化を行う。- Parameters:
argHttpProtocolClient
- 初期化対象のHttpProtocolClientのインスタンスsettings
-MessageSender
の設定情報mimeType
- 送信するデータの種別
-
getAccept
レスポンスの本文として受信可能なタイプを取得します- Returns:
- レスポンスの本文として受信可能なタイプ
-
mapToUriString
protected String mapToUriString(String preUri, HttpProtocolClient.HttpRequestMethodEnum httpMethod, SyncMessage requestMessage) URIを生成する。このメソッドはURI生成ルールのカスタマイズのために存在している。本クラスの実装では、引数preUriを返却する。
- Parameters:
preUri
- メッセージ送信定義に記述されているURIhttpMethod
- HTTPメソッドrequestMessage
- 要求電文- Returns:
- URI
-
mapToQueryMap
protected Map<String,String> mapToQueryMap(String preUri, HttpProtocolClient.HttpRequestMethodEnum httpMethod, SyncMessage requestMessage) クエリストリングを生成する。このメソッドはクエリストリング生成ルールのカスタマイズのために存在している。本クラスの実装では、空のMapを返す。
- Parameters:
preUri
- メッセージ送信定義に記述されているURIhttpMethod
- HTTPメソッドrequestMessage
- 要求電文- Returns:
- URI
-
mapToHeaderMap
HTTPヘッダに含める内容を生成する。- Parameters:
requestMessage
- 要求電文- Returns:
- HTTPヘッダに含める内容を格納したMap
-
mapToBodyString
protected SimpleDataConvertResult mapToBodyString(String uri, HttpProtocolClient.HttpRequestMethodEnum httpMethod, SyncMessage requestMessage) throws HttpMessagingInvalidDataFormatException 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
HTTPリクエストを発行後、OutputStreamを読み取り結果を返却させるためのIFを生成する。- Returns:
- OutputStreamを読み取り結果を返却させるためのIF
-
createCharHttpStreamWritter
HTTPリクエストを発行時の送信内容を保持するオブジェクトを生成する。- Parameters:
charset
- 文字コードbodyText
- 送信時の本文- Returns:
- 送信内容を表すオブジェクト
-
headerToMap
返信のヘッダ部分を解析し、応答電文に設定するデータを生成する。- 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
応答電文のデータフォーマット定義ファイル名パターンを取得する。- Returns:
- 応答電文のデータフォーマット定義ファイル名パターン
-
getRequestMessageFormatFileNamePattern
要求電文のフォーマット定義ファイル名のパターンを取得する。- Returns:
- 要求電文のフォーマット定義ファイル名のパターン
-
getUserIdToFormatKey
ユーザIDとフォーマット定義ファイル上のキーとの対応を取得する。- Returns:
- フォーマット定義ファイル上のキー
-
setUserIdToFormatKey
ユーザIDとフォーマット定義ファイル上のキーとの対応を設定する。- Parameters:
userIdToFormatKey
- フォーマット定義ファイル上のキー
-
getExistBodyHttpMethod
送信にbody部が存在するHTTPメソッドのリストを取得する。- Returns:
- 送信にbody部が存在するHTTPメソッドのリスト
-
getQueryStringEncoding
クエリストリングをエンコードする際に使用する文字コードを取得する。- Returns:
- 文字コード
-
setQueryStringEncoding
クエリストリングをエンコードする際に使用する文字コードを設定する。- Parameters:
queryStringEncoding
- 文字コード
-