Menu Close

12.2.2. 設定の使用

namespace

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

例12.4 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 ランタイムを設定できます。

conduit 要素

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

例12.5 http-conf:conduit 要素

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

http-conf:conduit 要素には設定情報を指定する子要素があります。これらについては、表12.1「HTTP コンシューマーエンドポイントの設定に使用される要素」 を参照してください。

表12.1 HTTP コンシューマーエンドポイントの設定に使用される要素

要素説明

http-conf:client

タイムアウト、キープアライブリクエスト、コンテンツ型など、HTTP コネクションプロパティーを指定します。「client 要素」 を参照してください。

http-conf:authorization

エンドポイントが先行で使用する Basic 認証方法を設定するパラメーターを指定します。優先される方法は http-conf:basicAuthSupplier オブジェクトを提供することです。

http-conf:proxyAuthorization

送信 HTTP プロキシーサーバーに対して Basic 認証を設定するパラメーターを指定します。

http-conf:tlsClientParameters

SSL/TLS の設定に使用されるパラメーターを指定します。

http-conf:basicAuthSupplier

先制的または 401 HTTP チャレンジに応答して、エンドポイントによって使用される Basic 認証情報を提供するオブジェクトの Bean 参照またはクラス名を指定します。

http-conf:trustDecider

情報送信前に HTTPS サービスプロバイダーとのコネクションに対して信頼を確立するために HTTP(S) URLConnection オブジェクトをチェックするオブジェクトの Bean 参照またはクラス名を指定します。

client 要素

http-conf:client 要素は、コンシューマーエンドポイントの HTTP コネクションのセキュリティー以外のプロパティーを設定するために使用されます。表12.2「HTTP コンシューマー設定属性」 に記載されているその属性は、コネクションのプロパティーを指定します。

表12.2 HTTP コンシューマー設定属性

属性説明

ConnectionTimeout

コンシューマーがタイムアウトするまでにコネクションを確立しようとする時間 (ミリ秒単位) を指定します。デフォルトは 30000 です。

0 を指定すると、コンシューマーはリクエストの送信を無期限に続行します。

ReceiveTimeout

応答がタイムアウトするまでコンシューマーが待機する時間をミリ秒単位で指定します。デフォルトは 30000 です。

0 を指定するとコンシューマーは無期限に待機します。

AutoRedirect

コンシューマがサーバー発行のリダイレクトを自動的にフォローするかどうかを指定します。デフォルトは false です。

MaxRetransmits

コンシューマがリダイレクトを満たすためにリクエストを再送信する最大回数を指定します。デフォルトは -1 で、無制限の再送信を許可します。

AllowChunking

コンシューマーがチャンクを使用してリクエストを送信するかどうかを指定します。デフォルトは true で、リクエストの送信時にコンシューマーがチャンクを使用することを指定します。

次のいずれかに当てはまる場合、チャンクは使用できません。

  • http-conf:basicAuthSupplier が、クレデンシャルを先制的に提供するように設定されている。
  • AutoRedirecttrue に設定されている。

いずれの場合も、AllowChunking の値は無視され、チャンクは禁止されます。

Accept

コンシューマが処理する準備ができているメディア型を指定します。値は HTTP Accept プロパティーの値として使用されます。属性の値は、MIME (Multipurpose Internet Mail Extensions) 型を使用して指定されます。

AcceptLanguage

コンシューマが応答を受信する目的で優先される言語 (アメリカ英語など) を指定します。値は HTTP AcceptLanguage プロパティーの値として使用されます。

言語タグは、国際標準化機構 (ISO) によって規制されており、通常は ISO-639 規格で定められた言語コードと、ISO-3166 規格で定められた国コードをハイフンで区切って組み合わせて形成されます。たとえば、en-US はアメリカ英語を表します。

AcceptEncoding

コンシューマが処理する準備ができているコンテンツエンコーディングを指定します。コンテンツエンコーディングラベルは、Internet Assigned Numbers Authority (IANA) によって規制されています。値は HTTP AcceptEncoding プロパティーの値として使用されます。

ContentType

メッセージのボディーで送信されるデータのメディア型を指定します。メディア型は、MIME 型を使用して指定されます。値は HTTP ContentType プロパティーの値として使用されます。デフォルトは text/xml です。

Web サービスの場合、これを text/xml に設定する必要があります。クライアントが CGI スクリプトに HTML フォームデータを送信している場合、これを application/x-www-form-urlencoded に設定する必要があります。HTTP POST リクエストが固定されたペイロードフォーマットにバインドされている場合 (SOAP ではなく)、コンテンツ型は通常 application/octet-stream に設定されます。

Host

要求が呼び出されるリソースのインターネットホストおよびポート番号を指定します。値は HTTP Host プロパティーの値として使用されます。

通常、この属性は必要ありません。これは、特定の DNS シナリオまたはアプリケーション設計でのみ必要です。たとえば、クライアントがクラスターでどのホストを優先するか (つまり、仮想サーバーの同じインターネットプロトコル (IP) アドレスへのマッピング) を示します。

Connection

各要求/応答ダイアログの後で、特定のコネクションを開いたままにするか、閉じるかを指定します。有効な値は 2 つあります。

  • Keep-Alive - 最初のリクエスト/応答シーケンスの後にコンシューマーが開いたままにするように指定します。サーバーがこれを有効にする場合、コンシューマーがそれを閉じるまでコネクションは開いた状態になります。
  • close (デフォルト) - 各リクエスト/応答シーケンスの後にサーバーへのコネクションが閉じられるよう指定します。

CacheControl

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

Cookie

すべてのリクエストで送信される静的クッキーを指定します。

BrowserType

リクエストの発信元のブラウザーに関する情報を指定します。World Wide Web Consortium (W3C) からの HTTP 仕様では、ユーザーエージェント とも呼ばれます。一部のサーバーは、リクエストを送信しているクライアントを基にして最適化されています。

Referer

特定のサービスでリクエストを行うようにコンシューマに指示したリソースの URL を指定します。値は HTTP Referer プロパティーの値として使用されます。

この HTTP プロパティーは、ブラウザユーザーが URL を入力した結果のリクエストではなく、ハイパーリンクをクリックした結果のリクエストである場合に使用されます。これにより、サーバーは以前のタスクフローに基づいて処理を最適化でき、ロギング、最適化されたキャッシュ、廃止されたリンクや入力ミスのリンクの追跡などのために、リソースへのバックリンクの一覧を生成できます。ただし、通常は web サービスアプリケーションでは使用されません。

AutoRedirect 属性が true に設定され、リクエストがリダイレクトされると、Referer 属性で指定された値が上書きされます。HTTP Referer プロパティーの値は、コンシューマーの元のリクエストをリダイレクトしたサービスの URL に設定されます。

DecoupledEndpoint

個別のプロバイダー→コンシューマーコネクション上で応答を受信するための分離エンドポイントの URL を指定します。分離されたエンドポイントの使用に関する詳細は、「分離モードでの HTTP トランスポートの使用」 を参照してください。

分散されたエンドポイントが機能するには、コンシューマーエンドポイントとサービスプロバイダーエンドポイントの両方を WS-Addressing を使用するように設定する必要があります。

ProxyServer

要求がルーティングされるプロキシーサーバーの URL を指定します。

ProxyServerPort

要求がルーティングされるプロキシーサーバーのポート番号を指定します。

ProxyServerType

要求をルーティングするために使用されるプロキシーサーバーの型を指定します。有効な値は次のとおりです。

  • HTTP(デフォルト)
  • SOCKS

例12.6「HTTP コンシューマーエンドポイントの設定」 は、リクエスト間で、プロバイダーへのコネクションを開いたままにする HTTP コンシューマーエンドポイントの設定を示しています。これは、呼び出しごとにリクエストを 1 度だけ再送信し、チャンキングストリームを使用できません。

例12.6 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:conduit name="{http://apache.org/hello_world_soap_http}SoapPort.http-conduit">
    <http-conf:client Connection="Keep-Alive"
                      MaxRetransmits="1"
                      AllowChunking="false" />
  </http-conf:conduit>
</beans>

詳細情報

HTTP コンジットの詳細は、16章コンジット を参照してください。