Задержка планировщика весенних заданий от jndi - PullRequest
1 голос
/ 07 марта 2012

Я настраиваю планировщик задач 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: schedule' не должен содержать символьный элемент или элемент информации элемента [children], потому что тип содержимого типа пустой. [/ WEB-INF /spring/applicationContext.xml] недействителен; Вложенное исключение - org.xml.sax.SAXParseException: cvc-complex-type.2.1: Элемент 'task: schedule' не должен содержать информационный элемент символа или элемента [children], поскольку тип содержимого типа пуст.

Я понимаю причину исключения, поэтому существует ли жизнеспособное решение моей проблемы? Спасибо.

1 Ответ

1 голос
/ 07 марта 2012

Использование <property> не будет работать, потому что <task:scheduled> - это макрос, а не определение компонента. Они работают по-разному.

Попробуйте вместо этого использовать Spring-EL:

<task:scheduled ref="servicesConfigurationBean" 
                method="loadResources" 
                fixed-delay="#servicesRefreshRate" />

Я не пробовал, но попробуй.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...