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&gt; 机制。您可以使用 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