169.10. 異なる JMS プロバイダーの設定
以下のように Spring XML で JMS プロバイダーを設定できます。
基本的に、必要なだけ JMS コンポーネントインスタンスを設定し、id
属性 を 使用して一意の名前を 指定することができます。上記の例は activemq
コンポーネントを設定します。MQSeries、TibCo、BEA、Sonic などを設定するためにも同じことを実行できます。
名前付きの JMS コンポーネントを使用すると、URI を使用してそのコンポーネント内のエンドポイントを参照できます。たとえば、コンポーネント名 activemq
の場合、URI 形式 activemq:[queue:|topic:]destinationName
を使用して宛先を参照できます。他のすべての JMS プロバイダーで同じアプローチを使用できます。
これは、エンドポイント URI に使用するスキーム名に対して SpringCamelContext が Spring コンテキストからコンポーネントを取得し、Component がエンドポイント URI を解決させることで機能します。
169.10.1. JNDI を使用した接続ファクトリーの検索
J2EE コンテナーを使用している場合、Spring で通常の < bean
> メカニズムを使用するのではなく、JNDI を検索して JMS ConnectionFactory
を検索する必要がある場合があります。これは、Spring のファクトリー Bean または新しい Spring XML namespace を使用して実行できます。以下に例を示します。
<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 リファレンスドキュメントの「 The jee schema 」を参照してください。