在Mule 2中,我们曾经能够使用以下方法创建动态入站端点:
<quartz:endpoint-polling-job>
<quartz:job-endpoint
address="jms://retry.queue?selector=JMSTimestamp%3C%3D%23[System.currentTimeMillis() - 30000]" />
</quartz:endpoint-polling-job>
在Mule 3中,我们收到错误:
The endpoint "jms://retry.queue?selector=JMSTimestamp<=#[System.currentTimeMillis()
- 30000]" is malformed and cannot be parsed... Only Outbound endpoints can be dynamic
听起来他们不再让表达式评估程序在创建入站之前处理“地址”。我的解释是否正确?
答案 0 :(得分:2)
你是对的,在3.3中不再支持。
您可以使用<poll>
元素在流程的开头包装以下脚本:
<scripting:component>
<scripting:script engine="groovy">
muleContext.client.request('jms://retry.queue?selector=JMSTimestamp%3C%3D'+(System.currentTimeMillis() - 30000), eventContext.timeout)
</scripting:script>
</scripting:component>