178.12. 配置不同的 JMS 供应商
您可以在 Spring XML 中配置 JMS 供应商,如下所示:
基本上,您可以根据需要配置任意数量的 JMS 组件实例,并使用 id
属性 为它们指定唯一名称。前面的示例配置了 activemq
组件。您可以执行同样的配置 MQSeries、TibCo、BEA、Sonic 等等。
有了命名的 JMS 组件后,就可以使用 URI 引用该组件的端点。例如,对于组件名称 activemq
,您可以使用 URI 格式引用目的地,activemq:[queue:|topic:]destinationName
。您可以对所有其他 JMS 供应商使用相同的方法。
这由 SpringCamelContext lazily 从 spring 上下文获取您用于 Endpoint URI 的方案名称,并让组件解析端点 URI。
178.12.1. 使用 JNDI 来查找 ConnectionFactory
如果您使用 J2EE 容器,您可能需要查找 JNDI 来查找 JMS ConnectionFactory
,而不是在 Spring 中使用常见的 < bean>
; 机制。您可以使用 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 schema。