2013-12-17 47 views
1

我從我的騾子流量使用內置的財產${dir.classes}騾子ESB屬性文件隱藏dir.classes變量

像這樣引用的幾個資源:

<parse-template location="${dir.classes}/instruction.json.template" 
    doc:name="Parse Template"/> 

的資源在src/main/resources文件夾中找到流量很好。但是隻要我想補充一個屬性文件來流與此:

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

突然流找不到${dir.classes}了,我得到這個錯誤:

Caused by: org.mule.api.config.ConfigurationException: Invalid bean definition 
     with name 'instructionFlow1' defined in null: Could not 
     resolve placeholder 'dir.classes' in string value 
     "${dir.classes}/instruction.json.template" 
     (org.mule.api.lifecycle.InitialisationException) (org.mule.api.config.ConfigurationException) 
     at org.mule.config.builders.AbstractConfigurationBuilder.configure(AbstractConfigurationBuilder.java:52) 
     at org.mule.config.builders.AbstractResourceConfigurationBuilder.configure(AbstractResourceConfigurationBuilder.java:78) 
     at org.mule.context.DefaultMuleContextFactory.createMuleContext(DefaultMuleContextFactory.java:84) 
     at org.mule.module.launcher.application.DefaultMuleApplication.init(DefaultMuleApplication.java:207) 

它看起來像屬性文件隱藏了默認定義${dir.classes}。不幸的是,這個${dir.classes}屬性沒有被MuleSoft很好的記錄,也沒有跡象表明如何處理這個。我提出的唯一選擇是引用我的資源與明確的物理路徑,這是不理想的。

回答

1

昨天也有同樣的問題!只要您使用spring屬性佔位符,則語法$ {}將解析爲該屬性文件中的屬性。

如果你使用的是一個騾子建造的變種,但是所有的都不會丟失,這有點令人討厭。

如果在src/main/resource中使用maven任何東西都可用於mule,因爲這是它查找文件的開始位置。

所以只是像指定文件路徑:

<parse-template location="instruction.json.template" doc:name="Parse Template"/> 
+0

的最佳解決方案。 Pity Mule的Maven支持(特別是最新版本)非常垃圾。至少它保存了明確的路徑。 –

+0

是的,我已經與它搏鬥了一個星期了!然而,我很清楚地知道,mvn正在運行一個可部署的壓縮文件的完整版本。文檔太糟糕了! –