Как я могу ссылаться на домашний каталог Mule в компоненте Java, например:Как я могу ссылаться на домашний каталог Мул в Java компонент
String directory = ${Mule_Home};
Как я могу ссылаться на домашний каталог Mule в компоненте Java, например:Как я могу ссылаться на домашний каталог Мул в Java компонент
String directory = ${Mule_Home};
Одним из способов вы можете сделать это первым сохранить значение # [mule.home] в переменной:
<set-variable value="#[mule.home]" variableName="mule_home"
doc:name="Variable" />
, а затем вы можете получить доступ к этому из компонента следующим образом:
MuleMessage message = eventContext.getMessage();
String mule_home = message.getProperty("mule_home", PropertyScope.INVOCATION);
Еще один способ, который на самом деле лучше, заключается в реализации MuleContextAware и оценить мул выражение в компоненте следующим образом:
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");
надеюсь, что это поможет! Удачи!
Чтобы добавить к сказанному выше, вы можете просто вызвать метод в MuleContext, который напрямую дает вам полный путь к каталогу MULE_HOME в качестве альтернативы использованию метода ExpressionLanguage.evaluate().
public class MyComponent implements Callable, MuleContextAware {
MuleContext context;
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
return context.getConfiguration().getMuleHomeDirectory();
}
@Override
public void setMuleContext(MuleContext context) {
this.context = context;
}
// include getters and setters for context
Вы создали переменную окружения для этого (Mule_Home)? – Vihar
Я не знаком с мулом, но является ли это общесистемной переменной среды? Другими словами, будет работать 'System.getProperty (...)'? – vikingsteve