10.23. Camel ゲートウェイの設定
Camel が処理できるさまざまなトランスポートをすべて表示するには、以下の Camel Component リストを参照してください。 http://camel.apache.org/components.html
注記
Camel コンポーネントによってライブラリーの依存関係が異なります。JBoss Enterprise SOA Platform には
camel-core.jar のみが含まれます。必要な他の依存関係(他の camel-* jars またはサードパーティーの jar を含む)を、お使いのアプリケーションではなく server//deployers/esb.deployer/lib に追加する必要があります。コア以外の Camel コンポーネントの使用に関する詳細は、を参照してください http://community.jboss.org/wiki/CamelGatewayUsingNon-coreComponents/。
更新された(
jbossesb-1.3.0.xsd)スキーマの使用を宣言すると、jboss-esb.xml ファイルで新しい <camel-provider> セクションが Providers の下に表示されます。
最も興味深い部分は、<camel-bus> 要素に含まれることです。ここで、無制限の <from uri=""/> 要素を追加できます。Camel XML 設定に慣れているものは、ネイティブ Camel XML 設定の内容を正確に実行するため、その要素について十分に理解しておく必要があります。また、busidref 属性を介してバスを参照できる新しい <camel-gateway> 要素もあります。
<camel-gateway name="..." busidref="..."/>
<camel-gateway name="..." busidref="..."/>
<camel-provider> をまったく使用せずに、<camel-gateway> 要素の下に <from uri=""/> 要素を定義できます。
<camel-gateway name="..."> <from uri=""/> <from uri=""/> </camel-gateway>
<camel-gateway name="...">
<from uri=""/>
<from uri=""/>
</camel-gateway>
また、ゲートウェイレベルまたはバスレベルで XML 属性として Camel から URI を 1 つ指定できる簡単なメカニズムもあります。ゲートウェイレベルは次のとおりです。
<camel-gateway name="..." from-uri="..."/>
<camel-gateway name="..." from-uri="..."/>
バスレベルは次のとおりです。
<camel-bus name="..." busid="..." from-uri="..."/>
<camel-bus name="..." busid="..." from-uri="..."/>
注記
<camel-bus> と <camel-gateway> レベルの両方で定義されたすべての Camel "from" URI は累積的です(要素形式や短い形式を使用するかどうか)。
この時点で、Camel では少なくとも 1 つの宛先を定義する必要があるため、<to uri=""/> 要素がどこにあるかについて考えられます。JBoss Enterprise Service Bus では、すべての Camel "from" URI は 1 つのルート(その gateway+bus の他のすべてのルートに追加)に変換され、<camel-gateway> を割り当てる関連するサービスを呼び出す暗黙的な Camel "to" URI を使用します。可能性下では、その gateway+bus のすべてのルートはそのサービスを呼び出し、すべて同じ CamelContext 内で実行され、その CamelGateway のライフサイクルと関連付けられます。
注記
このゲートウェイは、1 つの "from" URI で定義できる Camel ルートのみをサポートすることに注意してください。ゲートウェイでサポートされる基本的なスタンザは from (endpointUri).to (esbService)です。ゲートウェイは、他の Camel コンポーネントへの中間ルーティングを必要とするルートをサポートしません。
注記
このゲートウェイは、1 つの "from" URI で定義できる Camel ルートのみをサポートすることに注意してください。ゲートウェイでサポートされる基本的なスタンザは from (endpointUri).to (esbService)です。ゲートウェイは、他の Camel コンポーネントへの中間ルーティングを必要とするルートをサポートしません。
一部の Camel コンポーネントはスケジュールされたルーティングタスクを実行することがあります。たとえば、HTTP コンポーネントを使用して HTTP アドレスを定期的にポーリングしたり、File コンポーネントを使用してファイルシステムディレクトリーをポーリングしたりできます。これらのすべてのコンポーネントがポーリング頻度を設定するための URI オプションをサポートしているわけではありません。HTTP コンポーネントはこのような例です。このような場合は、コンポーネントの URI Scheme に "esbschedule:<frequency-in-millis>" (例:. <from uri="esbschedule:5000:http://www.jboss.org" /> は 5 秒ごとに jboss.org をポーリングするだけです)。
最後に、<camel-gateway> または <camel-bus> レベルのいずれかに配置できる他の 2 つのオプション属性があります(この場合はバスを上書きするゲートウェイ): async および timeout:
<camel-gateway name="..." from-uri="..." async="false" timeout="30000"/>
<camel-gateway name="..." from-uri="..." async="false" timeout="30000"/>
- async 属性(デフォルトは false)は、基礎となる ServiceInvoker が関連するサービスを同期的または非同期に呼び出すかどうかを示します。
- timeout 属性(デフォルトは 30000)で、ServiceInvoker が同期呼び出しで待機する必要のあるミリ秒数を定義します。
注記
詳細は、以下の wiki ページを参照してください。 http://community.jboss.org/wiki/CamelGateway
camel_helloworld クイックスタートを調査することもできます。