如何在Mule的私有流中获取调用者流名称

时间:2013-05-14 17:46:32

标签: mule

我有一个使用flow-ref的大量公共流共享的私有流。我希望使用Mule 3.3.0使用MEL在私有流中获取调用者流名称。这可能吗?

1 个答案:

答案 0 :(得分:5)

Mule在通过flow-ref调用私有流时不会向事件添加任何属性,因此您的选项是:

  • 在调用私有流之前,使用<set-variable>设置带有流名称的变量,并使用#[flowVars.yourVariableName]读取此变量。
  • 使用呼叫流的入站端点作为告知谁正在呼叫的方式。您可以使用#[message.inboundProperties.MULE_ENDPOINT]获取入站端点网址,也可以使用#[message.inboundProperties.MULE_ORIGINATING_ENDPOINT]获取其名称。
  • 创建一个实现MessageProcessor的自定义FlowConstructAware:这样您将获得流名称,并能够自动将其设置为MuleEvent消息上的调用变量。在custom-processor
  • 之前,在所有父流中使用flow-ref元素