Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.54.3. ghttp
ghttp コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
重要
GAE コンポーネントは非推奨となり、JBoss Fuse の今後のリリースで削除される予定です。
ghttp
コンポーネントは、Google App Engine (GAE)の Camel コンポーネントに提供します。GAE URL フェッチサービス への接続を提供しますが、サーブレットからメッセージを受信するためにも使用できます(GAE で HTTP リクエストを受信する唯一の方法)。これは、Servlet コンポーネント を拡張することで実現されます。そのため、ghttp
URI 形式およびオプションは、コンシューマー側の(からの)およびプロデューサー側の(から
)とは異なります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
形式 | コンテキスト | Comment |
---|---|---|
ghttp:///path[?options]
|
コンシューマー | Servlet コンポーネントも参照してください。 |
ghttp://hostname[:port][/path][?options] ghttps://hostname[:port][/path][?options]
|
プロデューサー | Http コンポーネントも参照してください。 |
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | デフォルト値 | コンテキスト | 説明 |
---|---|---|---|
bridgeEndpoint
|
true
|
プロデューサー |
true に設定すると、Exchange.HTTP_URI ヘッダーは無視されます。Exchange.HTTP_URI ヘッダーでデフォルトのエンドポイント URI を上書きするには、このオプションを false に設定します。
|
throwExceptionOnFailure
|
true
|
プロデューサー |
応答コードが >= 400 の場合は、org.apache.camel.component.gae.http を出力します。例外の出力を無効にするには、このオプションを false に設定します。
|
inboundBindingRef
|
GHttpBinding への参照
|
コンシューマー |
エクスチェンジ のサーブレット API へのバインディングをカスタマイズするための 、レジストリー内の InboundBinding<GHttpEndpoint、HttpServletRequest、HttpServletResponse > への参照。参照バインディングは、org.apache.camel.component.http.HttpBinding への後プロセッサーとして使用されます。
|
outboundBindingRef
|
GHttpBinding への参照
|
プロデューサー |
エクスチェンジ の URLFetchService へのバインディングをカスタマイズするための Registry の OutboundBinding<GHttpEndpoint, HTTPRequest, HTTPResponse > への参照。
|
コンシューマー側では、Servlet コンポーネント のすべてのオプションがサポートされます。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
プロデューサー側では、Http コンポーネント の以下のヘッダーがサポートされます。
名前 | タイプ | 説明 |
---|---|---|
Exchange.CONTENT_TYPE
|
文字列
|
HTTP コンテンツタイプ。は、in および out メッセージの両方で設定され、text/html などのコンテンツタイプを提供します。
|
Exchange.CONTENT_ENCODING
|
文字列
|
HTTP コンテンツエンコーディング。は、gzip などのコンテンツエンコーディングを提供するために in および out メッセージの両方に設定されます。
|
Exchange.HTTP_METHOD
|
文字列
|
実行する HTTP メソッド。GET 、POST 、PUT 、DELETE のいずれか。設定されていない場合は、メッセージのボディーが null でない場合は POST が使用され、それ以外の場合はGET が使用されます。
|
Exchange.HTTP_QUERY
|
文字列
|
エンドポイント URI のクエリー部分または Exchange.HTTP_URI のクエリー部分(定義されている場合)を上書きします。クエリー文字列はデコードされた形式である必要があります。
|
Exchange.HTTP_URI
|
文字列
|
bridgeEndpoint オプションが false に設定されている場合には、デフォルトのエンドポイント URI を上書きします。URI 文字列はデコード形式である必要があります。
|
Exchange.RESPONSE_CODE
|
int
|
URL からの HTTP 応答コードは、サービス応答をフェッチします。 |
コンシューマー側で Servlet コンポーネントコンポーネント のすべてのヘッダーがサポートされます。
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
プロデューサー側で、のメッセージボディーは
byte[]
に変換されます。
out
メッセージ本文は InputStream
として利用できます。リポジトリーサイズが 1 メガバイトを超える場合、URL フェッチサービスによって ResponseTooLargeException が出力されます( クォータおよび制限を参照)。
メッセージの受信 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ghttp
コンポーネント経由でメッセージを受信するには、CamelHttpTransportServlet
を設定し、アプリケーションの web.xml
でマッピングする必要があります( 「web.xml」を参照してください)。たとえば、http://<appname>.appspot.com/camel/*
または http://localhost/camel/*
(ローカル開発サーバーを使用する場合)でターゲットとする要求を処理するには、以下のサーブレットマッピングを定義する必要があります。
web.xml
エンドポイント URI パス定義は、このサーブレットマッピングに相対的です(例:ルート)。
from("ghttp:///greeting").transform().constant("Hello")
from("ghttp:///greeting").transform().constant("Hello")
http://<appname>.appspot.com/camel/greeting
でターゲットとなる要求を処理します。この例では、リクエストボディーは無視され、応答ボディーが Hello
に設定されています。http://<appname>.appspot.com/camel/greeting/*
でターゲットとする要求は、デフォルトでは処理されません。これには、オプション matchOnUriPrefix
を true
に設定する必要があります。
from("ghttp:///greeting?matchOnUriPrefix=true").transform().constant("Hello")
from("ghttp:///greeting?matchOnUriPrefix=true").transform().constant("Hello")
メッセージの送信 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
外部 HTTP サービスに再起動を送信する場合、
ghttp
コンポーネントは URL フェッチサービス を使用します。たとえば、Apache Camel のホームページは、プロデューサー側で以下のエンドポイント定義で取得できます。
from(...) ... .to("ghttp://camel.apache.org") ...
from(...)
...
.to("ghttp://camel.apache.org")
...
使用される HTTP メソッドは、
Exchange.HTTP_METHOD
メッセージヘッダーまたはインメッセージの本文の存在によって異なります( null
の場合はGET
、POST
の場合は POST)。GAE アプリケーションを介した Camel ホームページの取得は、
from("ghttp:///home") .to("ghttp://camel.apache.org")
from("ghttp:///home")
.to("ghttp://camel.apache.org")
GET
リクエストを http://<appname>.appspot.com/camel/home
に送信すると、Camel ホームページが返されます。外部サービスとの HTTPS ベースの通信は、ghttps
スキームで有効にできます。
from(...) ... .to("ghttps://svn.apache.org/repos/asf/camel/trunk/") ...
from(...)
...
.to("ghttps://svn.apache.org/repos/asf/camel/trunk/")
...
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を
pom.xml
に追加する必要があります。
pom.xml
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-gae</artifactId> <version>${camel-version}</version> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-gae</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version}
は、実際のバージョンの Apache Camel (2.1.0 以降)に置き換える必要があります。