如何在camel中实现路由以从JMS队列接收消息?

时间:2016-07-28 13:40:49

标签: java spring apache-camel weblogic spring-jms

我已经参考了Camel文档的JMS页面以及许多相关的SO问题such as this one,但我无法找到有关实施的完整列表。

我使用Spring XML以及Camel和Weblogic作为服务器。我使用以下名称制作了一个测试队列:

服务器:TestJMSServer,模块:TestJMSModule,队列:TestJMSQueue,CF:TestConnectionFactory。

根据Camel文档,我的路线应该是这样的:

<camel:route id="test">
        <camel:from uri="jms:TestJMSQueue" />
        <camel:to uri="file:/Users/...." />
</camel:route>

这给了我一个错误说&#34;必须指定connectionFactory&#34;。那么我还需要在applicationContext.xml中添加什么来监听这个队列呢?

1 个答案:

答案 0 :(得分:2)

您需要告诉Camel的jms-component使用哪个JMS连接工厂。如果你正在使用WebLogic,很可能你会从jndi那里得到它。

在下面的示例中,我正在使用spring jee:jndi-lookup查找连接工厂(我相信这甚至可能是您可以在WebLogic中使用的名称)。然后,查找的工厂将作为标识为myConnectionFactory的弹簧bean提供。

此连接工厂bean随后用于camel connectionFactory的{​​{1}}属性。请注意JmsComponent属性:id。这定义了在您的路线中使用的驼峰端点uri方案。

jms

重要说明:您需要进一步调整(设置事务,设置并发使用者,可能配置spring jms连接池)