2

在 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

听起来他们不再让表达式评估器在创建入站之前处理“地址”。我的解释正确吗?

4

1 回答 1

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>
于 2013-06-14T17:42:27.953 回答