如何为ESB mule枚举类型属性设置对属性占位符的引用

时间:2016-11-25 12:28:30

标签: properties mule scheduler enumeration timeunit

我目前正在开发一个ESB(3.7.0 CE)mule应用程序,我正在使用具有固定频率调度程序的Poll组件。我想将timeUnit调度程序的属性外部化如下:

<poll doc:name="Poll">
<fixed-frequency-scheduler frequency="${scheduler.frequency}" timeUnit="${scheduler.timeUnit}" startDelay="${scheduler.startDelay}" />
<http:request config-ref="HTTP_RSS_Request_Configuration" path="${dmp.url.token}" method="GET" doc:name="HTTP GET RSS"/>
</poll> 

但是,在部署期间会抛出异常:

2016-11-25 10:13:29,265 [Mule.app.deployer.monitor.1.thread.1] ERROR org.mule.module.launcher.application.DefaultMuleApplication - null
org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: '${scheduler.timeUnit}' is not a valid value for 'NMTOKEN'.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) ~[?:?]
    at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source) ~[?:?]

解释可能是NMTOKEN不允许使用定义属性所需的$,{,}。但问题是如何克服这个问题。

1 个答案:

答案 0 :(得分:0)

您是否在you mule config xml中添加了上下文属性占位符?

像:

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