Red Hat Training

A Red Hat training course is available for Red Hat Fuse

169.10. 異なる JMS プロバイダーの設定

次のように、Spring XML で JMS プロバイダーを設定できます。

基本的に、必要な数の JMS コンポーネントインスタンスを設定し、id 属性 を使用して一意の名前 を付けることができます。前の例では、activemq コンポーネントを設定しています。同じことを行って、MQSeries、TibCo、BEA、Sonic などを設定できます。

名前付き JMS コンポーネントを作成したら、URI を使用してそのコンポーネント内のエンドポイントを参照できます。たとえば、コンポーネント名 activemq の場合、URI 形式 activemq:queue:|topic:destinationName を使用して宛先を参照できます。他のすべての JMS プロバイダーに対して同じアプローチを使用できます。

これは、SpringCamelContext がエンドポイント URI に使用するスキーム名のスプリングコンテキストからコンポーネントを遅延フェッチし、コンポーネントにエンドポイント URI を解決させることによって機能します。

169.10.1. JNDI を使用して ConnectionFactory を見つける

J2EE コンテナーを使用している場合は、Spring で通常の <bean> メカニズムを使用するのではなく、JNDI を検索して JMS ConnectionFactory を見つける必要がある場合があります。これは、Spring のファクトリー bean または新しい Spring XML 名前空間を使用して行うことができます。以下に例を示します。

<bean id="weblogic" class="org.apache.camel.component.jms.JmsComponent">
  <property name="connectionFactory" ref="myConnectionFactory"/>
</bean>

<jee:jndi-lookup id="myConnectionFactory" jndi-name="jms/connectionFactory"/>

JNDI ルックアップの詳細については、Spring リファレンスドキュメントの jee スキーマ を参照してください。