第178章 Undertow
Undertow コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.16 以降で利用可能
undertow コンポーネントは、HTTP リクエストを使用し、生成するための HTTP ベースのエンドポイントを提供します。つまり、Undertow コンポーネントは単純な Web サーバーとして動作します。Undertow は HTTP クライアントとしても使用でき、Camel でプロデューサーとして使用することもできます。
Maven ユーザーは、このコンポーネントの以下の依存関係を
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
undertow:http://hostname[:port][/resourceUri][?options]
undertow:http://hostname[:port][/resourceUri][?options]
以下の形式で URI にクエリーオプションを追加できます。
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
|
httpMethodRestrict
|
GET/POST/PUT などの HttpMethod が一致する場合にのみ消費できるようにするために使用されます。複数のメソッドはコンマで区切って指定できます。 | |
|
matchOnUriPrefix
|
完全に一致するものが見つからない場合に、コンシューマーが URI 接頭辞と一致することでターゲットコンシューマーの検索を試みるかどうか。 | |
|
headerFilterStrategy
|
カスタムの HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルタリングします。 | |
|
sslContextParameters
|
SSLContextParameters オブジェクトを使用してセキュリティーを設定するには、以下を行います。Security Guide の Configuring Transport Security for Camel Components の章を参照してください。
|
|
| throwExceptionOnFailure | オプションが true の場合、HttpProducer は Exchange.HTTP_URI ヘッダーを無視し、リクエストにエンドポイントの URI を使用します。また、オプション throwExceptionOnFailure を false に設定して、プロデューサーがすべての障害応答を返信するようにすることもできます。 | |
| transferException | リモートサーバーからの応答が失敗した場合に HttpOperationFailedException を出力することを無効にするオプション。これにより、HTTP ステータスコードに関係なくすべての応答を取得できます。 | |
| undertowHttpBinding | カスタムの UndertowHttpBinding を使用して Camel メッセージと undertow 間のマッピングを制御します。 | |
keepAlive
|
true | Camel 2.16.1: Producer のみ: 非アクティブのためにソケットが閉じられないように設定 |
| tcpNoDelay | true | Camel 2.16.1: Producer only:Setting to improve TCP protocol performance (Camel 2.16.1: プロデューサーのみ:TCP プロトコルのパフォーマンスを改善するための設定) |
| reuseAddresses | true | Camel 2.16.1: プロデューサーのみ:ソケットの多重化を容易にするための設定 |
| options.XXX |
Camel 2.16.1: Producer only:追加のチャネルオプションを設定します。使用できるオプションは、org.xnio.Options で定義されています。エンドポイント URI から設定するには、"option.close-abort=true&option.send-buffer=8192" などの各オプションの前に options. を付けます。
|
|
| enableOptions | false | Camel 2.17: この Undertow コンシューマーに対して HTTP OPTIONS を有効にするかどうかを指定します。デフォルトでは、OPTIONS はオフになっています。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel は HTTP コンポーネントと同じメッセージヘッダーを使用します。Camel 2.2 では、
Exchange.HTTP_CHUNKED,CamelHttpChunked ヘッダーを使用して camel-undertow コンシューマーでチェンドエンコーディングをオンまたはオフにします。
Camel は すべて の request.parameter および request.headers も設定します。たとえば、URL
http://myserver/myserver?orderid=123 を持つクライアントリクエストの場合、エクスチェンジには値が 123 の orderid という名前のヘッダーが含まれます。
コンポーネントオプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
UndertowComponent では、以下のオプションを提供します。
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
|
undertowHttpBinding
|
|
カスタムの UndertowHttpBinding を使用して Camel メッセージと undertow 間のマッピングを制御します。
|
|
httpConfiguration
|
共有 HttpConfiguration を基本設定として使用します。 |
プロデューサーの例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は、HTTP リクエストを既存の HTTP エンドポイントに送信する方法の基本的な例です。
Java DSL で
from("direct:start").to("undertow:http://www.google.com");
from("direct:start").to("undertow:http://www.google.com");
Spring XML で または を使用します。
<route>
<from uri="direct:start"/>
<to uri="undertow:http://www.google.com"/>
<route>
<route>
<from uri="direct:start"/>
<to uri="undertow:http://www.google.com"/>
<route>
コンシューマーの例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この例では、
http://localhost:8080/myapp/myservice で HTTP サービスを公開するルートを定義します。
<route> <from uri="undertow:http://localhost:8080/myapp/myservice"/> <to uri="bean:myBean"/> </route>
<route>
<from uri="undertow:http://localhost:8080/myapp/myservice"/>
<to uri="bean:myBean"/>
</route>
URL で
localhost を指定すると、Camel はローカルの TCP/IP ネットワークインターフェイスでのみエンドポイントを公開するため、操作するマシンからアクセスすることはできません。
特定のネットワークインターフェイスで Jetty エンドポイントを公開する必要がある場合は、このインターフェイスの数値の IP アドレスをホストとして使用する必要があります。すべてのネットワークインターフェイスで Jetty エンドポイントを公開する必要がある場合は、
0.0.0.0 アドレスを使用する必要があります。