如何在java组件中引用Mule主目录

如何在java组件中引用Mule主目录,java,mule,Java,Mule,如何在Java组件中引用Mule的主目录,例如: String directory = ${Mule_Home}; 一种方法是首先将#[mule.home]的值保存在变量中: <set-variable value="#[mule.home]" variableName="mule_home" doc:name="Variable" /> 另一种更好的方法是实现MuleContextAware,并在组件中计算mule表达式,如下所示: public cla

如何在Java组件中引用Mule的主目录,例如:

String directory = ${Mule_Home};

一种方法是首先将#[mule.home]的值保存在变量中:

    <set-variable value="#[mule.home]" variableName="mule_home"
        doc:name="Variable" />
另一种更好的方法是实现MuleContextAware,并在组件中计算mule表达式,如下所示:

public class MyComponent implements Callable, MuleContextAware {

MuleContext context;

@Override
public Object onCall(MuleEventContext eventContext) throws Exception {

    ExpressionLanguage el = context.getExpressionLanguage();
    String result = el.evaluate("mule.home");
    return result;
}

@Override
public void setMuleContext(MuleContext context) {
    this.context = context;
}
// include getters and setters for context

一种方法是首先将#[mule.home]的值保存在变量中:

    <set-variable value="#[mule.home]" variableName="mule_home"
        doc:name="Variable" />
另一种更好的方法是实现MuleContextAware,并在组件中计算mule表达式,如下所示:

public class MyComponent implements Callable, MuleContextAware {

MuleContext context;

@Override
public Object onCall(MuleEventContext eventContext) throws Exception {

    ExpressionLanguage el = context.getExpressionLanguage();
    String result = el.evaluate("mule.home");
    return result;
}

@Override
public void setMuleContext(MuleContext context) {
    this.context = context;
}
// include getters and setters for context

这里的一种方法是通过名称“MULE_HOME”设置环境变量

要在java组件中检索它,请使用:-

System.getenv("MULE_HOME");
希望有帮助!
祝你好运

这里的一种方法是通过名称“MULE\u HOME”设置环境变量

要在java组件中检索它,请使用:-

System.getenv("MULE_HOME");
希望有帮助!
祝你好运

为了补充Clare上面提到的内容,您可以简单地调用MuleContext上的方法,该方法直接提供MULE_主目录的完整路径,作为使用ExpressionLanguage.evaluate()方法的替代方法


为了补充Clare上面提到的内容,您可以简单地调用MuleContext上的方法,该方法直接提供MULE_主目录的完整路径,作为使用ExpressionLanguage.evaluate()方法的替代方法


您是否为此(Mule_Home)创建了环境变量?我不熟悉Mule,但这是一个系统范围的环境变量?换句话说,
System.getProperty(…)
work?您是否为此(Mule\u Home)创建了环境变量?我不熟悉Mule,但这是一个系统范围的环境变量?换句话说,
System.getProperty(…)
是否有效?为什么要在Mule流中设置变量?在此之后,整个mule流程中不需要它,如果在多个不同的流程中需要它?然后在每个流程中设置它?我已经修改了我的答案,以便包括一个更好的方法如何让骡子回家。HTHW为什么要在Mule flow中设置变量?在此之后,整个mule流程中不需要它,如果在多个不同的流程中需要它?然后在每个流程中设置它?我已经修改了我的答案,以便包括一个更好的方法如何让骡子回家。嗯