第241章 Netty HTTP コンポーネント (非推奨)
Camel バージョン 2.12 以降で利用可能
netty-http コンポーネントは、Netty による HTTP トランスポートを容易にする Netty コンポーネントの拡張機能です。
この camel コンポーネントは、プロデューサーエンドポイントとコンシューマーエンドポイントの両方をサポートします。
このコンポーネントは非推奨です。Netty4 HTTP を使用する必要があります。
ストリームNetty はストリームベースです。つまり、受信した入力はストリームとして Camel に送信されます。つまり、ストリームのコンテンツを 一度 だけ読み取ることができます。もし、メッセージボディーが空のように見える場合や、何度もデータにアクセスする必要がある場合 (例: マルチキャストや再配送エラー処理)、ストリームキャッシュを使用するか、何度再読み込みしても安全な String
にメッセージボディーを変換する必要があります。Netty4 HTTP は、io.netty.handler.codec.http.HttpObjectAggregator
を使用してストリーム全体をメモリーに読み込み、完全な http メッセージ全体をビルドすることに注意してください。ただし、結果のメッセージは、一度読み取り可能なストリームベースのメッセージのままです。
Maven ユーザーは、このコンポーネントの pom.xml
に以下の依存関係を追加する必要があります。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-netty-http</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
241.1. URI 形式
netty コンポーネントの URI スキームは次のとおりです。
netty-http:http://0.0.0.0:8080[?options]
URI には、?option=value&option=value&…
の形式でクエリーオプションを追加できます。
情報: クエリーパラメーターとエンドポイントオプション。Camel が URI クエリーパラメーターとエンドポイントオプションをどのように認識するのか疑問に思われるかもしれません。たとえば、次のようにエンドポイント URI を作成できます - netty-http:http//example.com?myParam=myValue&compression=true
。この例では、myParam
が HTTP パラメーターであり、compression
が Camel エンドポイントオプションです。このような状況で Camel が使用するストラテジーは、利用可能なエンドポイントオプションを解決し、それらを URI から削除することです。これは、前述の例の場合、compression
エンドポイントオプションが解決され、ターゲット URL から削除されるため、Netty HTTP producer によってエンドポイントに送信された HTTP リクエストが http//example.com?myParam=myValue
のようになることを意味します。また、動的ヘッダー (CamelHttpQuery
など) を使用してエンドポイントオプションを指定できないことにも注意してください。エンドポイントオプションは、エンドポイント URI 定義レベル (DSL 要素 to
または from
など) でのみ指定できます。