検索

295.6. 例

download PDF

情報: Camel 2.7 以降では、Spring Web アプリケーションで サーブレット を使用する方が簡単です。詳細は、Servlet Tomcat Tomcat の例 を参照してください。

このサンプルでは、http://localhost:8080/camel/services/hello で HTTP サービスを公開するルートを定義します。
最初に、通常の Web コンテナーまたは OSGi サービスを介して CamelHttpTransportServlet を公開する必要があります。
Web.xml ファイルを使用して、次のように CamelHttpTransportServlet を公開します。

次に、次のようにルートを定義できます。

注記

camel-servlet エンドポイントの相対パスを指定する HTTP トランスポートを公開されたサーブレットにバインドしていて、サーブレットのアプリケーションコンテキストパスがわからないため、camel-servlet エンドポイントは相対パスを使用してエンドポイントの URL を指定します。クライアントは、サーブレット公開アドレス ("http://localhost:8080/camel/services") + RELATIVE_PATH("/hello") を介して、camel-servlet エンドポイントにアクセスできます。

295.6.1. Spring 3.x 使用時のサンプル

サーブレット Tomcat の例を参照してください。

295.6.2. Spring 2.x 使用時のサンプル

Camel/Spring アプリケーションで Servlet コンポーネントを使用する場合、多くの場合、Servlet コンポーネントの開始 後に Spring ApplicationContext をロードする必要があります。これは、ContextLoaderListener の代わりに Spring の ContextLoaderServlet を使用することで実現できます。その場合、次のように CamelHttpTransportServlet の後に ContextLoaderServlet を開始する必要があります。

<web-app>
  <servlet>
        <servlet-name>CamelServlet</servlet-name>
        <servlet-class>
            org.apache.camel.component.servlet.CamelHttpTransportServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
        <servlet-name>SpringApplicationContext</servlet-name>
        <servlet-class>
            org.springframework.web.context.ContextLoaderServlet
        </servlet-class>
        <load-on-startup>2</load-on-startup>
  </servlet>
<web-app>

295.6.3. OSGi 使用時のサンプル

Camel 2.6.0 から、このように SpringDM を使用して、CamelHttpTransportServlet を OSGi サービスとして公開できます。

次に、このサービスを camel ルートで次のように使用します。

Camel 2.6 より前のバージョンでは、Activator を使用して、OSGi プラットフォームで CamelHttpTransportServlet を公開できます。

295.6.4. Spring-Boot での使用

Camel 2.19.0 以降、camel-servlet-starter ライブラリーは "/camel/*" コンテキストパスの下のすべての残りのエンドポイントを自動的にバインドします。次の表は、camel-servlet-starter ライブラリーで使用できる追加の設定プロパティーをまとめたものです。Camel サーブレットの自動マッピングも無効にすることができます。

Spring-Boot プロパティーデフォルト説明

camel.component.servlet.mapping.enabled

true

サーブレットコンポーネントの Spring Web コンテキストへの自動マッピングを有効にします

camel.component.servlet.mapping.context-path

/camel/*

自動マッピングのためにサーブレットコンポーネントによって使用されるコンテキストパス

camel.component.servlet.mapping.servlet-name

CamelServlet

Camel サーブレットの名前

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.