179.12. 配置不同的 JMS 供应商
您可以在 Spring XML 中配置 JMS 供应商,如下所示:
基本上,您可以根据需要配置多个 JMS 组件实例,您需要使用 id
属性 为它们指定唯一的名称。前面的示例配置 activemq
组件。您可以执行相同的操作来配置 MQ 系列、TibCo、BEA、SEA 等等。
命名 JMS 组件后,您可以使用 URI 引用该组件内的端点。例如,对于组件名称 activemq
,您可以使用 URI 格式引用目的地,activemq:[queue:|topic:]destinationName
。您可以将相同的方法用于所有其他 JMS 提供程序。
这适用于 SpringCamelContext lazily 从用于 Endpoint URI 的方案名称的 spring 上下文获取组件,并且组件解析端点 URI。
179.12.1. 使用 JNDI 查找 ConnectionFactory 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
如果使用 J2EE 容器,您可能需要查找 JNDI 来查找 JMS ConnectionFactory
,而不是在 Spring 中使用常见的 < bean>
; 机制。您可以使用 Spring 的 factory 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"/>
<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 模式。