来自不带datawave的流变量的Mule load属性值
我有一个场景,需要从属性文件中获取值,需要从变量中获取值 我的道具文件来自不带datawave的流变量的Mule load属性值,mule,Mule,我有一个场景,需要从属性文件中获取值,需要从变量中获取值 我的道具文件 org1 =active org1_oracle_user = blah org1_oracle_password = blahblah org2 =active org2_oracle_user = blah2 org2_oracle_password = blah2blah2 org3 = Active org3_oracle_user = blah3 org3_oracle_password = blah3blah3
org1 =active
org1_oracle_user = blah
org1_oracle_password = blahblah
org2 =active
org2_oracle_user = blah2
org2_oracle_password = blah2blah2
org3 = Active
org3_oracle_user = blah3
org3_oracle_password = blah3blah3
现在我通过一些输入得到组织的值,并且我能够保存到一些变量中
现在,如何使用不带dataweave的flowvariable从propertyfile获取值。
我知道如何通过dataweave获得值,如下所示
<set-variable variableName="orgTypeStatus" value="#[dw('p(flowVars.org_name)')]" doc:name="orgTypeStatusVariable" />
但是不知道如何在没有dataweave的情况下获取值
我给出了一个示例,因为还有其他基于组织名称的道具,我不能硬编码它通常,如果您需要从属性文件中选择值,您可以使用如下内容:-
<logger level="INFO" message="${org1}" doc:name="Logger"/>
但是根据你的问题,我可以看出你想在不使用dataweave的情况下尝试这个。
因此,要使其成为动态的并动态地拾取属性值,您需要使用spring加载属性文件:-
<spring:beans>
<spring:bean id="appProps" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<spring:property name="singleton" value="true"/>
<spring:property name="location" value="classpath:dev.properties"/>
</spring:bean>
</spring:beans>
现在,在流程中,您可以动态尝试以下操作:
<logger level="INFO" message="${org1}" doc:name="Logger"/>
<set-variable variableName="org_name" value="org1" doc:name="OrgNameVariable" />
<set-variable variableName="orgTypeStatus" value="#[app.registry.appProps[flowVars.org_name]]" doc:name="orgTypeStatusVariable" />
<set-variable variableName="m_user" value="#[app.registry.appProps[flowVars.org_name +'_oracle_user']]" doc:name="user"/>
<logger message="Logging variables:- m_user: #[flowVars.m_user] orgTypeStatus: #[flowVars.orgTypeStatus]" level="INFO" doc:name="Logger" />
它表示表达式“app.registry.appProps[flowVars.org\u name]”的执行失败。(org.mule.api.expression.ExpressionRuntimeException)。现在可以工作了!!忘记使用Springbean属性加载器而不是使用旧的上下文加载器。。。将道具更改为弹簧豆后,其工作正常