java如何在camel中实现路由以从JMS队列接收消息?
我已经参考了Camel文档的JMS页面和许多相关的SO问题such as this one,但是我无法找到关于实现的全面列表
我正在为服务器使用SpringXML以及Camel和Weblogic。我用以下名称创建了一个测试队列:
服务器:TestJMSServer,模块:TestJMSModule,队列:TestJMSQueue,CF:TestConnectionFactory
根据Camel文档,我的路线应该如下所示:
<camel:route id="test">
<camel:from uri="jms:TestJMSQueue" />
<camel:to uri="file:/Users/...." />
</camel:route>
这给了我一个错误,说“必须指定connectionFactory”。那么,我还需要向applicationContext添加什么呢。xml以侦听此队列
# 1 楼答案
您需要告诉Camel的jms组件要使用哪个jms连接工厂。如果您使用的是WebLogic,那么您很可能会从jndi获得这些信息
在下面的示例中,我使用spring的
jee:jndi-lookup
查找连接工厂(我相信这甚至可能是您可以在WebLogic中使用的名称)。然后,查找的工厂将作为id为myConnectionFactory
的Springbean提供然后,这个连接工厂bean用于camel的
JmsComponent
的connectionFactory
属性。注意id
属性:jms
。这定义了路由中要使用的驼峰端点uri方案重要提示:您需要进一步调整(设置事务、设置并发使用者、可能的配置spring jms连接池)