我使用内置属性${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}
的默认定义。不幸的是,MuleSoft没有很好地记录${dir.classes}
属性,并且没有迹象表明该怎么做。我提出的唯一选择是使用明确的物理路径来引用我的资源,这是不理想的。
答案 0 :(得分:1)
昨天遇到同样的问题!只要使用spring属性占位符,语法$ {}就会解析为该属性文件中的属性。
如果您使用的是骡子内置的变量,这有点令人讨厌,但并不会丢失。
如果使用maven,src / main / resource中的任何内容都可用于mule,因为这是查找文件的地方。
所以只需指定文件路径:
<parse-template location="instruction.json.template" doc:name="Parse Template"/>