第54章 GAE


54.1. GAE コンポーネントの概要

Google App Engine の Apache Camel コンポーネント

重要
GAE コンポーネントは非推奨となり、JBoss Fuse の今後のリリースで削除される予定です。
チュートリアル
Google App Engine (GAE)の Apache Camel コンポーネントは camel-gae プロジェクトの一部で、GAE の クラウドコンピューティングサービス への接続を提供します。これにより、Apache Camel インターフェイスを介してアプリケーションが GAE クラウドコンピューティング環境にアクセスできるようになります。他のクラウドコンピューティング環境のこのパターンに従うと、Apache Camel アプリケーションをあるクラウドプロバイダーから別のクラウドコンピューティングプロバイダーに移植しやすくなります。以下の表は、Google App Engine によって提供されるクラウドコンピューティングサービスとサポートする Apache Camel コンポーネントを示しています。各コンポーネントのドキュメントは、Camel Component 列のリンクに従って表示されます。
Expand
GAE サービス Camel コンポーネント コンポーネントの説明
URL フェッチサービス ghttp GAE URL フェッチサービスへの接続を提供しますが、サーブレットからメッセージを受信する場合にも使用できます。
タスクキューサービス gtask タスクキューをメッセージキューとして使用して、GAE での非同期メッセージ処理をサポートします。
メールサービス gmail GAE メールサービスを介したメールの送信をサポートします。メールの受信はまだサポートされていませんが、後で追加されます。
memcache サービス サポートされていません。
XMPP サービス サポートされていません。
イメージサービス サポートされていません。
データストアサービス サポートされていません。
Accounts サービス gauth glogin これらのコンポーネントは、認証および承認のために Google Accounts API と対話します。Google アカウントは Google App Engine に固有のものではありませんが、セキュリティーを実装するために GAE アプリケーションによって使用されます。gauth コンポーネントは、Google 固有の OAuth コンシューマーを実装するために Web アプリケーションによって使用されます。このコンポーネントは、GAE 以外の Web アプリケーションを有効にするためにも使用できます。glogin コンポーネントは、GAE アプリケーションにプログラムによるログインのために Java クライアント(GAE 外)によって使用されます。GAE アプリケーションを不正アクセスから保護する方法は、セキュリティー ページを参照してください。

Camel コンテキスト

Google App Engine での SpringCamelContext の設定は、Camel 2.1 以降のバージョンによって異なります。この問題は、http://camel.apache.org/schema/spring の Camel 固有の Spring 設定 XML スキーマを使用するには JAXB が必要で、Camel 2.1 は JAXB をサポートしない Google App Engine SDK バージョンに依存することです。この制限は、Camel 2.2 以降から削除されました。
javax.management パッケージは App Engine JRE のホワイトリストに含まれていないため、JMX は必ず無効にする必要があります。

Apache Camel 2.1

camel-gae 2.1 には、以下の CamelContext 実装が同梱されています。
  • org.apache.camel.component.gae.context.GaeDefaultCamelContext ( org.apache.camel.impl.DefaultCamelContextの拡張)
  • org.apache.camel.component.gae.context.GaeSpringCamelContext ( org.apache.camel.spring.SpringCamelContextを拡張)
いずれも起動前に JMX を無効にします。GaeSpringCamelContext は、以下の例のようにルートビルダーを追加するセッターメソッドを追加で提供します。
appctx.xml
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    
    <bean id="camelContext" 
        class="org.apache.camel.component.gae.context.GaeSpringCamelContext">
        <property name="routeBuilder" ref="myRouteBuilder" />
    </bean>
    
    <bean id="myRouteBuilder"
        class="org.example.MyRouteBuilder">
    </bean>
    
</beans>
Copy to Clipboard Toggle word wrap
または、ルートビルダーの一覧を設定するには、GaeSpringCamelContextrouteBuilders プロパティーを使用します。この方法では、JAXB を必要とせずに SpringCamelContext を GAE に設定できます。

Apache Camel 2.2

Camel 2.2 以降では、アプリケーションは SpringCamelContext を設定するために http://camel.apache.org/schema/spring namespace を使用できますが、JMX を無効にする必要があります。以下は例です。
appctx.xml
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:camel="http://camel.apache.org/schema/spring"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
    
    <camel:camelContext id="camelContext">
        <camel:jmxAgent id="agent" disabled="true" />
        <camel:routeBuilder ref="myRouteBuilder"/>
    </camel:camelContext>
    
    <bean id="myRouteBuilder"
        class="org.example.MyRouteBuilder">
    </bean>
    
</beans>
Copy to Clipboard Toggle word wrap

web.xml

GAE で Apache Camel を実行するには、camel-servlet から CamelHttpTransportServlet を使用する必要があります。以下の例は、Spring アプリケーションコンテキスト XML ファイルとともにこのサーブレットを設定する方法を示しています。
web.xml
<web-app 
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
    
    <servlet>
        <servlet-name>CamelServlet</servlet-name>
        <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>appctx.xml</param-value>
        </init-param>
    </servlet>

    <!--
        Mapping used for external requests
     -->
    <servlet-mapping>
        <servlet-name>CamelServlet</servlet-name>
        <url-pattern>/camel/*</url-pattern>
    </servlet-mapping>
    
    <!--
        Mapping used for web hooks accessed by task queueing service.
     -->
    <servlet-mapping>
        <servlet-name>CamelServlet</servlet-name>
        <url-pattern>/worker/*</url-pattern>
    </servlet-mapping>

</web-app>
Copy to Clipboard Toggle word wrap
Spring アプリケーションコンテキスト XML ファイルの場所は、contextConfigLocation init パラメーターによって指定されます。appctx.xml ファイルはクラスパス上にある必要があります。サーブレットマッピングは、Google App Engine にデプロイする際に、http://<appname>.appspot.com/camel/... で Apache Camel アプリケーションにアクセスできるようにします。< appname > は実際の GAE アプリケーション名に置き換えます。2 つ目のサーブレットマッピングは、Web フック を介してバックグラウンド処理のためにタスクキューサービスによって内部的に使用されます。このマッピングは gtask コンポーネントに関連し、詳細に説明されています。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat