我的目标是将Camel与其JMS组件一起使用。
路线配置如下所示 -
from("jms:queue:test").to(mybean)
我想添加类型'参数'的选项并在此路由中键入'object' - 例如选项'jmsMessageType'。
我看到其他一些帖子谈到在路由定义中使用setProperty(),但我找不到明确的答案。 “字符串”和数字类型的选项可以附加到URI,但不能附加到对象。
JMS有一个taskExecutor选项,但我如何将这个实例添加到URI以进行路由。
答案 0 :(得分:1)
我认为您将参数与选项混淆。
您所指的jmsMessageType 是Camel的 jms 组件的一个选项。每个组件都有很多选项,您可以通过附加"?"来使用它们。字符。例如
from("jms:queue:test?jmsMessageType=text").to(mybean)
更具体地说,对于jms组件,可以在http://camel.apache.org/jms.html中找到有用的选项(参见“常见和高级选项”部分)
属性不同,它与组件无关,但与通过端点传递的 Exchange 消息无关。更多详情请见Passing values between processors in apache camel
答案 1 :(得分:1)
我必须通过将实例添加到自定义注册表并使用端点URI
来解决此问题来自官方Apache Camel页面
来自Camel 2.0:
使用URI语法配置端点时,您现在可以引用bean 在注册表中使用#表示法。如果参数值开始 然后使用#符号,Camel将在Registry中查找一个bean的bean 给定类型。例如:
文件://收件箱分拣=#mySpecialFileSorter