Refreshable Bean no Last-Modified Header - PullRequest
       2

Refreshable Bean no Last-Modified Header

0 голосов
/ 21 марта 2011

В моем файле контекста приложения определен Groovy «обновляемый» bean-компонент. Бин определяется с префиксом http: (см. Ниже). У меня проблема в том, что наши веб-серверы не отправляют последний измененный заголовок, который требуется для обновляемого компонента, чтобы определить, был ли изменен скрипт.

Мне нужно разместить сценарии на наших веб-серверах, и я не могу изменить конфигурацию сервера для отправки последнего измененного заголовка. Таким образом, единственная опция, о которой я могу подумать, - это принудительно обновить обновление, вызвав какой-либо метод для компонента.

Есть ли какой-нибудь способ, учитывая боб ниже, что я могу вызвать обновление?

<lang:groovy id="messenger" refresh-check-delay="1000" 
        script-source="http://10.74.192.111/groovy/GroovyMessenger.groovy" />

Могу ли я создать GroovyObjectCustomizer, который бы добавил метод forceRefresh?

Спасибо

1 Ответ

1 голос
/ 22 марта 2011

Я бы сказал, что проблема должна быть решена, если вы замените стандартную реализацию фабричного сценария bean-компонента.

Объяснение будет довольно длинным, и это будет та же идея, что и
http://www.ibm.com/developerworks/java/library/j-groovierspring1.html
http://www.ibm.com/developerworks/java/library/j-groovierspring2.html
http://www.springone2gx.com/blog/scott_leberknight/2010/10/database_backed_refreshable_beans_with_groovy_and_spring_3
Последняя ссылка является дополнением к оригинальной серии на случай, если вы используете Spring 3 (что, я считаю, должно быть в вашем случае)

Короче говоря, вы бы хотели другой тип org.springframework.scripting.ScriptSource, который всегда возвращает true при запросе на изменение. Стандартная реализация запросит базовую реализацию org.springframework.core.io.Resource, а в вашем случае вернуть false как результат проверки содержимого заголовка запроса http head. Вы можете сделать это с помощью пользовательского org.springframework.scripting.support.ScriptFactoryPostProcessor.

Но опять же, проверьте статьи там. Они включают в себя очень подробное объяснение необходимых изменений.

...