Apache camel 在驼峰收件人列表中抑制分隔符选项
我们有一个定制的camel处理器,需要从传入的请求有效负载xpath中调用并动态参数化它,但是处理器的URI包含“逗号”,因为它在内部进行SQL查询Apache camel 在驼峰收件人列表中抑制分隔符选项,apache-camel,blueprint-osgi,Apache Camel,Blueprint Osgi,我们有一个定制的camel处理器,需要从传入的请求有效负载xpath中调用并动态参数化它,但是处理器的URI包含“逗号”,因为它在内部进行SQL查询 <context id="mycontext"> <from uri="timer://com.arpit.timer?period=1000&delay=1000&repeatCount=5&fixedRate=false&daemon=false"/>
<context id="mycontext">
<from uri="timer://com.arpit.timer?period=1000&delay=1000&repeatCount=5&fixedRate=false&daemon=false"/>
<setBody>
<simple> "here goes sample XML payload "</simple>
</setBody>
<setheader headerName="val1">
<xpath resultType="java.lang.String"> "here goes my xpath" </xpath>
</setheader>
<!-- Now I call my custom processor with URI containing comma -->
<recipientList delimiter="%">
<simple>Select col1, col2, col3 from tablex where id = '${header.val1}'</simple>
</recipientList>
</context>
“下面是示例XML负载”
“这是我的xpath”
从表x中选择col1、col2、col3,其中id='${header.val1}'
现在,只有当我们给出delimiter=“%”时,该场景才起作用。否则,它将失败,并出现无法找到端点col2的错误
是否有方法禁止收件人列表中的分隔符
问候,,
arbit.否您不能取消分隔符。尽管您可以将其设置为不匹配的值,例如XXXXXXXXXX或其他任何值
我记录了一个票证,允许在未来的Camel版本中这样做:通过了
org.apache.Camel.processor.RecipientList
类,类中的以下代码行使它看起来真的不能进行此抑制public boolean sendToRecipientList(Exchange交换,对象recipientList,异步回调){Iterator iter=ObjectHelper.createIterator(recipientList,delimiter);….}
有人能确认我的理解是否正确吗?