6.5.3. HTTPメッセージングレスポンス変換ハンドラ

本ハンドラでは、後続のハンドラが作成した応答電文オブジェクトをHTTPレスポンスオブジェクトに変換する。 また、応答電文オブジェクト内のプロトコルヘッダーの値を、対応するHTTPヘッダーに設定及びXMLやJSONなどの形式への直列化を行う。

本ハンドラでは、以下の処理を行う。

  • 応答電文オブジェクトの内容をHTTPレスポンスオブジェクトに変換する。

処理の流れは以下のとおり。

../../../../_images/flow11.png

6.5.3.2. モジュール一覧

<dependency>
  <groupId>com.nablarch.framework</groupId>
  <artifactId>nablarch-fw-messaging-http</artifactId>
</dependency>

6.5.3.3. 制約

HTTPレスポンスハンドラ よりも後ろに設定すること
このハンドラで生成した HTTPレスポンスオブジェクトHTTPレスポンスハンドラ がクライアントに返却するため。

6.5.3.4. レスポンスヘッダーに設定される値

後続のハンドラで作成された応答電文オブジェクトを元に以下のレスポンスヘッダを設定する。

Status-Code:

応答電文オブジェクトのステータスコードを設定する。

Content-Type:

応答電文オブジェクトの持つフォーマッタ(InterSystemMessage.getFormatter())から以下の値を取得し設定する。

MIMEが application/json でcharsetが utf-8 の場合、Content-Typeは以下の値となる。

application/json;charset=utf-8

関連メッセージID:

レスポンスヘッダーの X-Correlation-Id に、応答電文オブジェクトのヘッダーに設定された CorrelationId の値を設定する。

重要

このハンドラでは、上記に記載のないレスポンスヘッダーを設定することはできない。

上記外のレスポンスヘッダーを使用したい場合は、プロジェクトでハンドラを作成し対応すること。

6.5.3.5. フレームワーク制御ヘッダのレイアウトを変更する

応答電文内のフレームワーク制御ヘッダの定義を変更する場合には、プロジェクトで拡張したフレームワーク制御ヘッダの定義を設定する必要がある。 設定を行わない場合は、デフォルトの StructuredFwHeaderDefinition が使用される。

フレームワーク制御ヘッダの詳細は、 フレームワーク制御ヘッダ を参照。

以下に設定例を示す。

<component class="nablarch.fw.messaging.handler.HttpMessagingResponseBuildingHandler">
  <!-- フレームワーク制御ヘッダの設定 -->
  <property name="fwHeaderDefinition">
    <component class="sample.SampleFwHeaderDefinition" />
  </property>
</component>