Menu Close

12.3.2. 設定の使用

namespace

HTTP プロバイダーエンドポイントの設定に使用される要素は、namespace http://cxf.apache.org/transports/http/configuration で定義されます。通常、プレフィックス http-conf を使用して参照されます。HTTP 設定要素を使用するには、例12.9「HTTP プロバイダー設定 namespace」 にある行をエンドポイント設定ファイルの beans 要素に追加する必要があります。また、設定要素の namespace を xsi:schemaLocation 属性に追加する必要があります。

例12.9 HTTP プロバイダー設定 namespace

<beans ...
       xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
       ...
       xsi:schemaLocation="...
                           http://cxf.apache.org/transports/http/configuration
                              http://cxf.apache.org/schemas/configuration/http-conf.xsd
                          ...">

Undertow ランタイムまたは Netty ランタイム

http-conf namespace の要素を使用して、Undertow ランタイムまたは Netty ランタイムを設定できます。

destination 要素

http-conf:destination 要素およびその子を使用して HTTP サービスプロバイダーエンドポイントを設定します。http-conf:destination 要素は、エンドポイントに対応する WSDL port 要素を指定する単一の属性 name を取ります。name 属性の値は、portQName`.http-destination` の形式を取ります。例12.10「http-conf:destination 要素」 は、エンドポイントのターゲット namespace が http://widgets.widgetvendor.net の場合に WSDL フラグメント <port binding="widgetSOAPBinding" name="widgetSOAPPort> によって指定されるエンドポイントの設定を追加するために使用される http-conf:destination 要素を示しています。

例12.10 http-conf:destination 要素

...
  <http-conf:destination name="{http://widgets/widgetvendor.net}widgetSOAPPort.http-destination">
    ...
  </http-conf:destination>
...

http-conf:destination 要素には、設定情報を指定する複数の子要素があります。これらについては、表12.4「HTTP サービスプロバイダーエンドポイントの設定に使用される要素」 で説明されています。

表12.4 HTTP サービスプロバイダーエンドポイントの設定に使用される要素

要素説明

http-conf:server

HTTP コネクションプロパティーを指定します。「server 要素」 を参照してください。

http-conf:contextMatchStrategy

HTTP リクエストを処理するコンテキスト一致ストラテジーを設定するパラメーターを指定します。

http-conf:fixedParameterOrder

この宛先によって処理される HTTP リクエストのパラメーターの順序が固定されるかどうかを指定します。

server 要素

http-conf:server 要素は、サービスプロバイダーエンドポイントの HTTP コネクションのプロパティーを設定するために使用されます。表12.5「HTTP サービスプロバイダー設定属性」 に記載されているその属性は、コネクションのプロパティーを指定します。

表12.5 HTTP サービスプロバイダー設定属性

属性説明

ReceiveTimeout

コネクションがタイムアウトするまでにサービスプロバイダーがリクエストの受信を試みる時間をミリ秒単位で設定します。デフォルトは 30000 です。

0 はプロバイダーがタイムアウトしないことを指定します。

SuppressClientSendErrors

リクエストの受信時にエラーが発生したときに例外をスローするかどうかを指定します。デフォルトは false で、エラーが発生すると例外がスローされます。

SuppressClientReceiveErrors

コンシューマーへの応答の送信時にエラーが発生した場合に、例外がスローされるかどうかを指定します。デフォルトは false で、エラーが発生すると例外がスローされます。

HonorKeepAlive

応答が送信された後にコネクションを開いたままにする要求をサービスプロバイダーが受け入れるかどうかを指定します。デフォルトは false で、キープアライブ要求は無視されます。

RedirectURL

クライアント要求で指定された URL が要求されたリソースに適切ではなくなった場合に、クライアント要求のリダイレクト先となる URL を指定します。この場合、ステータスコードがサーバー応答の最初の行に自動的に設定されないと、ステータスコードは 302 に設定され、ステータスの説明は Object Moved に設定されます。値は HTTP RedirectURL プロパティーの値として使用されます。

CacheControl

サービスプロバイダーからコンシューマーへの応答で構成されるチェーンに関与するキャッシュが厳守しなければならない動作に関するディレクティブを指定します。「サービスプロバイダーキャッシュ制御ディレクティブ」 を参照してください。

ContentLocation

応答で送信されるリソースがある URL を設定します。

ContentType

応答で送信される情報のメディア型を指定します。メディア型は、MIME 型を使用して指定されます。値は HTTP ContentType の場所の値として使用されます。

ContentEncoding

サービスプロバイダーによって送信される情報に適用される追加のコンテンツエンコーディングを指定します。コンテンツエンコーディングラベルは、Internet Assigned Numbers Authority (IANA) によって規制されています。使用できるコンテンツエンコーディングの値には、zip、gzip、compress、deflate、identity があります。この値は HTTP ContentEncoding プロパティーの値として使用されます。

コンテンツエンコーディングの主な用途は、zip や gzip などのエンコードメカニズムを使用してドキュメントを圧縮できるようにすることです。Apache CXF は、コンテンツコーディングに対して検証を行いません。特定のコンテンツコーディングがアプリケーションレベルでサポートされていることを確認するのは、ユーザーの責任です。

ServerType

レスポンスを送信するサーバーの型を指定します。値は program-name/version という形式を取ります (例: Apache/1.2.5)。

例12.11「HTTP サービスプロバイダーエンドポイント設定」 は、キープアライブリクエストを受け入れ、すべての通信エラーを抑制する HTTP サービスプロバイダーエンドポイントの設定を示しています。

例12.11 HTTP サービスプロバイダーエンドポイント設定

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
       xsi:schemaLocation="http://cxf.apache.org/transports/http/configuration
                             http://cxf.apache.org/schemas/configuration/http-conf.xsd
                           http://www.springframework.org/schema/beans
                             http://www.springframework.org/schema/beans/spring-beans.xsd">

  <http-conf:destination name="{http://apache.org/hello_world_soap_http}SoapPort.http-destination">
    <http-conf:server SuppressClientSendErrors="true"
                      SuppressClientReceiveErrors="true"
                      HonorKeepAlive="true" />
  </http-conf:destination>
</beans>