第12章 HTTP の使用
概要
HTTP は Web の基礎となるトランスポートです。エンドポイント間の通信に標準化された堅牢で柔軟なプラットフォームを提供します。これらの要素により、ほとんどの WS-* 仕様のトランスポートが想定され、RESTful アーキテクチャーに不可欠です。
12.1. 基本的な HTTP エンドポイントの追加
代替 HTTP ランタイム
Apache CXF は、以下の代替の HTTP ランタイム実装をサポートします。
- Undertow: 「Undertow ランタイムの設定」 で詳しく説明されています。
- Netty (「Netty ランタイムの設定」) で詳細に説明されています。
Netty HTTP URL
通常、HTTP エンドポイントはクラスパス (Undertow または Netty のいずれか) に含まれる HTTP ランタイムを使用します。ただし、Undertow ランタイムと Netty ランタイムの両方がクラスパスに含まれている場合は、Undertow ランタイムがデフォルトで使用されるため、Netty ランタイムをいつ使用するかを明示的に指定する必要があります。
クラスパスで複数の HTTP ランタイムが使用可能な場合は、エンドポイント URL を次の形式で指定することにより、Undertow ランタイムを選択できます。
netty://http://RestOfURL
ペイロードのタイプ
使用しているペイロード形式に応じて、HTTP エンドポイントのアドレスを指定する 3 つの方法があります。
-
SOAP 1.1 は標準化された
soap:address
要素を使用します。 -
SOAP 1.2 は
soap12:address
要素を使用します。 -
その他のペイロード形式はすべて
http:address element.
を使用します。
Camel 2.16.0 リリースでは、Apache Camel CXF Payload は追加設定なしでストリームキャッシュをサポートします。
SOAP 1.1
HTTP 経由で SOAP 1.1 メッセージを送信する場合は、SOAP 1.1 address
要素を使用してエンドポイントのアドレスを指定する必要があります。エンドポイントのアドレスを URL として指定する 1 つの属性 location
があります。SOAP 1.1 address
要素は、namespace http://schemas.xmlsoap.org/wsdl/soap/ で定義されています。
例12.1「SOAP 1.1 ポート要素」 は、HTTP 経由で SOAP 1.1 メッセージを送信するために使用される port
要素を示しています。
例12.1 SOAP 1.1 ポート要素
<definitions ... xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" ...> ... <service name="SOAP11Service"> <port binding="SOAP11Binding" name="SOAP11Port"> <soap:address location="http://artie.com/index.xml"> </port> </service> ... <definitions>
SOAP 1.2
HTTP 経由で SOAP 1.2 メッセージを送信する場合は、SOAP 1.2 address
要素を使用してエンドポイントのアドレスを指定する必要があります。エンドポイントのアドレスを URL として指定する 1 つの属性 location
があります。SOAP 1.2 address
要素は、namespace http://schemas.xmlsoap.org/wsdl/soap12/ で定義されています。
例12.2「SOAP 1.2 ポート要素」 は、HTTP 経由で SOAP 1.2 メッセージを送信するために使用される port
要素を示しています。
例12.2 SOAP 1.2 ポート要素
<definitions ... xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" ... > <service name="SOAP12Service"> <port binding="SOAP12Binding" name="SOAP12Port"> <soap12:address location="http://artie.com/index.xml"> </port> </service> ... </definitions>
その他のメッセージタイプ
メッセージが SOAP 以外のペイロードフォーマットにマッピングされている場合は、HTTP address
要素を使用して、エンドポイントのアドレスを指定する必要があります。エンドポイントのアドレスを URL として指定する 1 つの属性 location
があります。HTTP address
要素は、namespace http://schemas.xmlsoap.org/wsdl/http/ で定義されています。
例12.3「HTTP ポート要素」 は、XML メッセージの送信に使用される port
要素を示しています。
例12.3 HTTP ポート要素
<definitions ... xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" ... > <service name="HTTPService"> <port binding="HTTPBinding" name="HTTPPort"> <http:address location="http://artie.com/index.xml"> </port> </service> ... </definitions>