Mule - 如何在Java Component中访问流名称?

时间:2016-05-09 14:27:51

标签: java mule

我们确实在许多流之间共享子流。我想在我的子流程中找到哪个Flow是一个呼叫...

MEL: -

#[flow.name]

仅适用于Logger。

我甚至无法将此值传递给Session / Anyother属性(通过set属性连接器),因此我可以使用message.getProperty方法进行访问。

提前致谢。

4 个答案:

答案 0 :(得分:1)

尝试制作组件org.mule.api.construct.FlowConstructAware。然后你应该能够得到它的名字。

HTH

答案 1 :(得分:1)

我是我的情况我创建了其他具有VM入站的日志记录流。然后我通过Java组件调用它。请参阅下面的示例代码。

myfile.open("C:/target/test.txt", std::ios::out | std::ios::app);

希望这会有所帮助:)

答案 2 :(得分:1)

您可以使用以下代码获取java组件中的流名称

import org.mule.api.MuleEventContext;
import org.mule.api.construct.FlowConstruct;
import org.mule.api.construct.FlowConstructAware;
import org.mule.api.lifecycle.Callable;

public class LogFlowName implements Callable, FlowConstructAware {
    private FlowConstruct flowConstruct;
    @Override
    public void setFlowConstruct(FlowConstruct flowConstruct) {
         this.flowConstruct = flowConstruct;

    }
    @Override
    public Object onCall(MuleEventContext eventContext) throws Exception {
        //TODO  your code goes here
        System.out.println("Flow Name is : " +flowConstruct.getName());
        //TODO  your code goes here
        return eventContext.getMessage().getPayload();
    }
}

希望这有帮助。

答案 3 :(得分:0)

另一种简单的方法,将其设置为变量,然后在java组件中访问该变量。