第230章 Netty4 HTTP コンポーネント
Camel バージョン 2.14 から利用可能
netty4-http コンポーネントは Netty4 で HTTP トランスポートを調整する Netty4 コンポーネントのエクステンションです。
この Camel コンポーネントは、プロデューサーとコンシューマーエンドポイントの両方をサポートします。
INFO: Stream.Netty はストリームベースであるため、受信する入力はストリームとして Camel に送信されます。つまり、は 1 回 のみストリームのコンテンツを読み取ることができます。メッセージボディーが空であるか、データに複数回アクセスする必要がある場合(マルチキャストの実行や再配信エラー処理など)、ストリームキャッシュを使用するか、メッセージボディーを複数回再読み取りできる String
に変換する必要があります。Netty4 HTTP は、io.netty.handler.codec.http.HttpObjectAggregator
を使用してストリーム全体をメモリーに読み取り、完全な http メッセージ全体を構築することに注意してください。ただし、生成されるメッセージは、1 度に判読できるストリームベースのメッセージになります。
Maven ユーザーは、このコンポーネントの pom.xml
に以下の依存関係を追加する必要があります。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-netty4-http</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
230.1. URI 形式
netty コンポーネントの URI スキームは以下のようになります。
netty4-http:http://localhost:8080[?options]
URI にクエリーオプションを追加するには、?option=value&option=value&…
INFO: Query parameters vs endpoint options.Camel が URI クエリーパラメーターおよびエンドポイントオプションを認識する方法について理解している場合があります。たとえば、エンドポイント URI を - netty4-http:http/example.com?myParam=myValue&compression=true
のように作成できます。この例では、myParam
は HTTP パラメーターですが、圧縮
は Camel エンドポイントオプションです。このような状況で Camel によって使用されるストラテジーは、利用可能なエンドポイントオプションを解決し、URI から削除することです。この例では、Netty HTTP プロデューサーによってエンドポイントに送信される HTTP リクエストは、 http//example.com?myParam=myValue
のように表示されます。圧縮
エンドポイントオプションはターゲット URL から解決され、削除されるためです。また、動的ヘッダー( CamelHttpQuery
など)を使用してエンドポイントオプションを指定できない点に留意してください。エンドポイントオプションは、エンドポイント URI 定義レベルでのみ指定できます(DSL 要素 に対する
ような)。