Mule - 创建自定义 属性 以在流程中使用
Mule - Create a custom property for use in flow
我正在尝试让 OS 名称在我的流程中可用,以便我可以根据操作系统调整变量 运行。
我是 spring bean 的新手,但到目前为止下面将调用 set 函数(我在日志中看到它)但我需要能够从我的流中访问 osName。
java class:
public class CustomVariables {
public CustomVariables(){}
public String osName;
public String getOsName(){
System.out.println("got value: "+ osName);
return osName;
}
public void setOsName(String name){
osName = System.getProperty("os.name").toLowerCase();
System.out.println("set value: "+ osName); //this prints in console on startup
}
}
mule.xml:
<spring:beans>
<spring:bean class="netstockconnector.CustomVariables">
<spring:property name="osName" value="{os.name}"> </spring:property>
</spring:bean>
</spring:beans>
在流程中:
<logger message="${osName}" level="INFO" doc:name="Logger"></logger>
这只是打印到控制台“${osName}”,而不是 "mac os x"。
有什么想法吗?
有一个更简单的解决方案...
<logger message='#[System.getProperty("os.name")]' level="INFO" doc:name="Logger"></logger>
要触发 Mule 表达式语言,要计算的表达式应该在 #[expression to evaluate]
之间。默认情况下,MEL 导入一组 java 类,其中包括 java.lang.System,因此在表达式中直接使用。
我正在尝试让 OS 名称在我的流程中可用,以便我可以根据操作系统调整变量 运行。
我是 spring bean 的新手,但到目前为止下面将调用 set 函数(我在日志中看到它)但我需要能够从我的流中访问 osName。
java class:
public class CustomVariables {
public CustomVariables(){}
public String osName;
public String getOsName(){
System.out.println("got value: "+ osName);
return osName;
}
public void setOsName(String name){
osName = System.getProperty("os.name").toLowerCase();
System.out.println("set value: "+ osName); //this prints in console on startup
}
}
mule.xml:
<spring:beans>
<spring:bean class="netstockconnector.CustomVariables">
<spring:property name="osName" value="{os.name}"> </spring:property>
</spring:bean>
</spring:beans>
在流程中:
<logger message="${osName}" level="INFO" doc:name="Logger"></logger>
这只是打印到控制台“${osName}”,而不是 "mac os x"。 有什么想法吗?
有一个更简单的解决方案...
<logger message='#[System.getProperty("os.name")]' level="INFO" doc:name="Logger"></logger>
要触发 Mule 表达式语言,要计算的表达式应该在 #[expression to evaluate]
之间。默认情况下,MEL 导入一组 java 类,其中包括 java.lang.System,因此在表达式中直接使用。