28.11. 配置不同的 JMS 提供程序
您可以在 Spring XML 中配置 JMS 供应商,如下所示:
基本上,您可以根据需要配置 JMS 组件实例,并使用 id 属性 为它们指定唯一名称。前面的示例配置了 activemq 组件。您可以执行相同的操作来配置 MQ 系列、TibCo、BEA、Sonnic 等。
一旦您拥有命名 JMS 组件,就可以使用 URI 来引用该组件内的端点。例如,作为组件名称 activemq,您可以使用 URI 格式 activemq:[queue:|topic:]destinationName 引用目的地。您可以将相同的方法用于所有其他 JMS 提供程序。
这由 SpringCamelContext lazily 获取组件适用于 Endpoint URI 的方案名称,并让组件解析端点 URI。
28.11.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 模式。