Mule ESB属性文件隐藏了dir.classes变量

时间:2013-12-17 13:10:03

标签: java swing mule

我使用内置属性${dir.classes}

从我的Mule流引用了一些资源

像这样:

<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}属性,并且没有迹象表明该怎么做。我提出的唯一选择是使用明确的物理路径来引用我的资源,这是不理想的。

1 个答案:

答案 0 :(得分:1)

昨天遇到同样的问题!只要使用spring属性占位符,语法$ {}就会解析为该属性文件中的属性。

如果您使用的是骡子内置的变量,这有点令人讨厌,但并不会丢失。

如果使用maven,src / main / resource中的任何内容都可用于mule,因为这是查找文件的地方。

所以只需指定文件路径:

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