54.3. ghttp


ghttp コンポーネント

重要
GAE コンポーネントは非推奨となり、JBoss Fuse の今後のリリースで削除される予定です。
ghttp コンポーネントは、Google App Engine (GAE)の Camel コンポーネントに提供します。GAE URL フェッチサービス への接続を提供しますが、サーブレットからメッセージを受信するためにも使用できます(GAE で HTTP リクエストを受信する唯一の方法)。これは、Servlet コンポーネント を拡張することで実現されます。そのため、ghttp URI 形式およびオプションは、コンシューマー側の(からの)およびプロデューサー側の(から)とは異なります。

URI 形式

Expand
形式 コンテキスト Comment
ghttp:///path[?options]
Copy to Clipboard Toggle word wrap
コンシューマー Servlet コンポーネントも参照してください。
ghttp://hostname[:port][/path][?options]
ghttps://hostname[:port][/path][?options]
Copy to Clipboard Toggle word wrap
プロデューサー Http コンポーネントも参照してください。

オプション

Expand
名前 デフォルト値 コンテキスト 説明
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 コンポーネント の以下のヘッダーがサポートされます。
Expand
名前 タイプ 説明
Exchange.CONTENT_TYPE 文字列 HTTP コンテンツタイプ。は、in および out メッセージの両方で設定され、text/html などのコンテンツタイプを提供します。
Exchange.CONTENT_ENCODING 文字列 HTTP コンテンツエンコーディング。は、gzip などのコンテンツエンコーディングを提供するために in および out メッセージの両方に設定されます。
Exchange.HTTP_METHOD 文字列 実行する HTTP メソッド。GETPOSTPUTDELETE のいずれか。設定されていない場合は、メッセージのボディーが 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
    ...
    <servlet>
        <servlet-name>CamelServlet</servlet-name>
        <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
        ...
    </servlet>
    ...
    <servlet-mapping>
        <servlet-name>CamelServlet</servlet-name>
        <url-pattern>/camel/*</url-pattern>
    </servlet-mapping>
    ...
Copy to Clipboard Toggle word wrap
エンドポイント URI パス定義は、このサーブレットマッピングに相対的です(例:ルート)。
from("ghttp:///greeting").transform().constant("Hello")
Copy to Clipboard Toggle word wrap
http://<appname>.appspot.com/camel/greeting でターゲットとなる要求を処理します。この例では、リクエストボディーは無視され、応答ボディーが Hello に設定されています。http://<appname>.appspot.com/camel/greeting/* でターゲットとする要求は、デフォルトでは処理されません。これには、オプション matchOnUriPrefixtrue に設定する必要があります。
from("ghttp:///greeting?matchOnUriPrefix=true").transform().constant("Hello")
Copy to Clipboard Toggle word wrap

メッセージの送信

外部 HTTP サービスに再起動を送信する場合、ghttp コンポーネントは URL フェッチサービス を使用します。たとえば、Apache Camel のホームページは、プロデューサー側で以下のエンドポイント定義で取得できます。
from(...)
...
.to("ghttp://camel.apache.org")
...
Copy to Clipboard Toggle word wrap
使用される HTTP メソッドは、Exchange.HTTP_METHOD メッセージヘッダーまたはインメッセージの本文の存在によって異なります( null の場合はGETPOST の場合は POST)。GAE アプリケーションを介した Camel ホームページの取得は、
from("ghttp:///home")
.to("ghttp://camel.apache.org")
Copy to Clipboard Toggle word wrap
GET リクエストを http://<appname>.appspot.com/camel/home に送信すると、Camel ホームページが返されます。外部サービスとの HTTPS ベースの通信は、ghttps スキームで有効にできます。
from(...)
...
.to("ghttps://svn.apache.org/repos/asf/camel/trunk/")
...
Copy to Clipboard Toggle word wrap

Dependencies

Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-gae</artifactId>
    <version>${camel-version}</version>
</dependency>
Copy to Clipboard Toggle word wrap
${camel-version} は、実際のバージョンの Apache Camel (2.1.0 以降)に置き換える必要があります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat