我正在配置一个Spring任务调度程序。
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="servicesConfigurationBean" method="loadResources" fixed-delay="300000" />
</task:scheduled-tasks>
它运作正常。现在我想从JNDI查找设置延迟值。所以我尝试了以下内容:
<task:scheduled ref="servicesConfigurationBean" method="loadResources">
<property name="fixed-delay"><ref local="servicesRefreshRate"/></property>
</task:scheduled>
但现在我获得了以下例外:
[/ WEB-INF / spring / applicationContext.xml]无效;嵌套异常是org.xml.sax.SAXParseException:cvc-complex-type.2.1:元素'task:scheduled'必须没有字符或元素信息项[children],因为类型的内容类型为空。[/ WEB-INF /spring/applicationContext.xml]无效;嵌套异常是org.xml.sax.SAXParseException:cvc-complex-type.2.1:元素'task:scheduled'必须没有字符或元素信息项[children],因为类型的内容类型为空。
我理解异常的原因,那么,我的问题是否有可行的解决方案? 感谢。
答案 0 :(得分:1)
使用<property>
将不起作用,因为<task:scheduled>
是宏,而不是bean定义。两者的工作方式截然不同。
尝试使用Spring-EL:
<task:scheduled ref="servicesConfigurationBean"
method="loadResources"
fixed-delay="#servicesRefreshRate" />
我没试过,但试一试。