Mulesoft没有从正确的文件中读取属性?

时间:2017-10-27 17:28:54

标签: maven mule-studio

我已经对我的项目进行了整理,试图找到处理DEV,预生产和生产属性的正确方法。 我创建了一个名为mule.env的属性,并添加了像

这样的上下文属性
<context:property-placeholder location="${mule.env}.properties"/>

我有mule-app.properties和mule-deploy.properties,其内容如下

  

mule-app.properties

c3=c3.p1
c2=c2.p1
c1=c1.p1
mule.env=dev
  

mule-deploy.properties

c4=c4.p2
c3=c3.p2
redeployment.enabled=true
c2=c2.p2
encoding=UTF-8
config.resources=test-config.xml
domain=default

我在资源下有一个dev.properties,

  

dev.properties

c1=c1.dev
c2=c2.dev
c3=c3.dev
c4=c4.dev

我有一个流程来显示设置有效负载中的属性

<flow name="test-configFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/"  doc:name="HTTP"/>
    <set-payload value="c1:${c1} &lt;br/&gt; c2:${c2} &lt;br/&gt; c3:${c3}  &lt;br/&gt; ${mule.env}" mimeType="text/html" doc:name="Set Payload"/>
</flow>

结果是

c1:c1.p1 
c2:c2.p1 
c3:c3.p1 
dev

我希望结果像

c1:c1.dev
c2:c2.dev
c3:c3.dev
dev

因为属性应来自dev.properties

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这很明显,因为在mule-app.properties包含:

c3=c3.p1
c2=c2.p1
c1=c1.p1
mule.env=dev

这会覆盖资源下dev.properties的值 解决方案:删除

c3=c3.p1
c2=c2.p1
c1=c1.p1

来自mule-app.properties。因此,mule-app.properties仅包含

mule.env=dev

,没有其他值