第178章 Undertow


Undertow コンポーネント

Camel 2.16 以降で利用可能
undertow コンポーネントは、HTTP リクエストを使用し、生成するための HTTP ベースのエンドポイントを提供します。つまり、Undertow コンポーネントは単純な Web サーバーとして動作します。Undertow は HTTP クライアントとしても使用でき、Camel でプロデューサーとして使用することもできます。
Maven ユーザーは、このコンポーネントの以下の依存関係を pom.xml に追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-undertow</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

URI 形式

undertow:http://hostname[:port][/resourceUri][?options]
Copy to Clipboard Toggle word wrap
以下の形式で URI にクエリーオプションを追加できます。 ?option=value&option=value&...

オプション

Expand
名前
デフォルト値
説明
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 では、以下のオプションを提供します。
Expand
名前
デフォルト値
説明
undertowHttpBinding
カスタムの UndertowHttpBinding を使用して Camel メッセージと undertow 間のマッピングを制御します。
httpConfiguration
共有 HttpConfiguration を基本設定として使用します。

プロデューサーの例

以下は、HTTP リクエストを既存の HTTP エンドポイントに送信する方法の基本的な例です。
Java DSL で
from("direct:start").to("undertow:http://www.google.com");
Copy to Clipboard Toggle word wrap
Spring XML で または を使用します。
<route>
    <from uri="direct:start"/>
    <to uri="undertow:http://www.google.com"/>
<route>
Copy to Clipboard Toggle word wrap

コンシューマーの例

この例では、http://localhost:8080/myapp/myservice で HTTP サービスを公開するルートを定義します。
<route>
  <from uri="undertow:http://localhost:8080/myapp/myservice"/>
  <to uri="bean:myBean"/>
</route>
Copy to Clipboard Toggle word wrap
URL で localhost を指定すると、Camel はローカルの TCP/IP ネットワークインターフェイスでのみエンドポイントを公開するため、操作するマシンからアクセスすることはできません。
特定のネットワークインターフェイスで Jetty エンドポイントを公開する必要がある場合は、このインターフェイスの数値の IP アドレスをホストとして使用する必要があります。すべてのネットワークインターフェイスで Jetty エンドポイントを公開する必要がある場合は、0.0.0.0 アドレスを使用する必要があります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat