28.11. 配置不同的 JMS 供应商
您可以在 Spring XML 中配置 JMS 供应商,如下所示:
基本上,您可以根据需要配置多个 JMS 组件实例,您需要使用 id
属性 为它们指定唯一的名称。前面的示例配置了 activemq
组件。您可以执行同样的方法来配置 MQSeries、TibCo、TibCo、Sonic 等。
命名的 JMS 组件后,您可以使用 URI 引用该组件中的端点。例如,对于组件名称 activemq
,您可以使用 URI 格式引用目的地,activemq:[queue:|topic:]destinationName
。您可以将相同的方法用于所有其他 JMS 提供程序。
这可通过 Spring CamelContext 许可,从用于 Endpoint URI 的方案名称的 spring 上下文获取组件,并让组件解析端点 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 模式。