我目前正在开发一个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不允许使用定义属性所需的$,{,}。但问题是如何克服这个问题。
答案 0 :(得分:0)
您是否在you mule config xml中添加了上下文属性占位符?
像:
<context:property-placeholder location="classpath:somefile.properties" />