2017-05-16 2 views
1

私はプロパティファイルから値を取得する必要があり、取得する必要がある値は変数から取得する必要があります。フローからの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 

ファイル。

ここで、データファイルなしのフロー変数を使用してプロパティファイルから値を取得するにはどうすればよいですか。 私は

<set-variable variableName="orgTypeStatus" value="#[dw('p(flowVars.org_name)')]" doc:name="orgTypeStatusVariable" /> 

しかしdataweaveせずに値を取得する方法を知っていることができないが、以下のようにdataweaveを通じて値を取得する方法を知っています。

私は組織名に基づいて、他の小道具があるように、サンプル例を与える持っていて、プロパティから値を選択する必要がある場合、私は一般的にハードコードそれ

答えて

1

をカントあなたは次のよう${}ものを使用できるファイル: -

<logger level="INFO" message="${org1}" doc:name="Logger"/> 

しかし、あなたの質問hereに基づいて、私はあなたがdataweaveを使用せずにこれを試してみたい見ることができます。 だから、それをダイナミックAKEと動的プロパティの値を選択する、あなたはあなたの特性をロードする必要が春使用してファイル: - :

<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" /> 
+0

<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> 

を、流れの中で、あなたが動的に次のことを試すことができますApp.registry.appProps [flowVars.org_name]という表現の実行に失敗しました。 (org.mule.api.expression.ExpressionRuntimeException)。 – Pathfinder

+0

その作業は今!古いコンテキストローダーを使用する代わりにSpring Beanプロパティーローダーを使用するのを忘れました... – Pathfinder

関連する問題