Menu Close
第12章 HTTP の使用
概要
HTTP は Web の基盤となるトランスポートです。エンドポイント間の通信に、標準化された、堅牢かつ柔軟なプラットフォームを提供します。これらの要因により、ほとんどの WS-* 仕様で想定されるトランスポートであり、RESTful アーキテクチャーに不可欠です。
12.1. 基本的な HTTP エンドポイントの追加
代替 HTTP ランタイム
Apache CXF は、以下の代替 HTTP ランタイム実装をサポートします。
- Undertow。「Undertow ランタイムの設定」 で詳細に説明されています。
- Netty。「Netty ランタイムの設定」 で詳細に説明されています。
Netty HTTP URL
通常、HTTP エンドポイントは、クラスパスに含まれている HTTP ランタイム (Undertow または Netty のいずれか) を使用します。ただし、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.1address
要素を使用してエンドポイントのアドレスを指定する必要があります。エンドポイントのアドレスを URL として指定する 1 つの属性 location
があります。SOAP 1.1 address
要素は、namespace http://schemas.xmlsoap.org/wsdl/soap/ に定義されています。
例12.1「SOAP 1.1 port 要素」 は、HTTP で SOAP 1.1 メッセージを送信するために使用される port
要素を示しています。
例12.1 SOAP 1.1 port 要素
<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.2address
要素を使用してエンドポイントのアドレスを指定する必要があります。エンドポイントのアドレスを URL として指定する 1 つの属性 location
があります。SOAP 1.2 address
要素は namespace http://schemas.xmlsoap.org/wsdl/soap12/ に定義されています。
例12.2「SOAP 1.2 port 要素」 は、HTTP で SOAP 1.2 メッセージを送信するために使用される port
要素を示しています。
例12.2 SOAP 1.2 port 要素
<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 port 要素」 は、XML メッセージの送信に使用される port
要素を示しています。
例12.3 HTTP port 要素
<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>