簡體   English   中英

訪問cloudhub上src / main / resources中的自定義屬性文件中的mule-app.properties

[英]Accessing mule-app.properties in custom properties file located in src/main/resources on cloudhub

我有一個使用m子apikit構建的m子應用程序。 mule-app.properties文件包含以下屬性:

orig.db.url=jdbc:db2://mmrs001.nmd.net:1004/dudu:user=abc43;password=xxxx;

定制屬性文件src / main / resources / dev.properties包含以下屬性:

db.url=${orig.db.url}

並且,m子配置xml文件包含以下property-placeholder:

<context:property-placeholder location="dev.properties"/>

現在,當我在本地部署它時,一切正常,並且能夠運行該流程。 但是,同時在Cloudhub上進行部署時,它給了我以下例外:

Invalid bean definition with name 'get:/total_amount:total_amount-db-config' defined in null: Could not resolve placeholder 'orig.db.url' in string value "jdbc:db2://mmrs001.nmd.net:1004/dudu:user=abc43;password=xxxx;"

我不明白我在這里想念什么?

您是如何部署到CloudHub的? 如果使用Anypoint Studio中的部署工具,則可以選擇在部署之前設置屬性。 圖片來自Anypoint Studio

mule-app.properties將被添加到系統屬性而不是類路徑屬性。 我們無法從添加到類路徑的屬性文件中引用系統屬性。 我們需要將這些屬性移到類路徑以在運行時解決這些問題。

通過使用以下命令導入mule-app.properties來覆蓋此行為的一種方法:

<context:property-placeholder location="mule-app.properties,dev.properties”/>

它告訴彈簧按各自的順序加載屬性。 因此,首先加載了mule-app.properties,然后是dev.properties。

但是,將mule-app.properties文件包含在類路徑中不是最佳實踐。 最好的方法是從mule-app.properties中刪除dev屬性,並將其放入dev.properties中。

默認情況下,當部署到cloudhub時,來自mule-app.properties的所有屬性都應顯示在properties選項卡中。 第一次部署時沒有看到它們嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM