Grails 2.3.7 и подключаемый модуль кэшированных ресурсов, по крайней мере, с ресурсами lesscss, не работают должным образом.
Кэшированный плагин возвращает ошибку, аналогичную описанной в этой теме:
<dt>Class</dt><dd>java.lang.NullPointerException</dd><dt>Message</dt><dd>Cannot invoke method cache() on null object</dd></dl><h2>Around line 31 of <span class="filename">grails-app/resourceMappers/org/grails/plugin/cachedresources/HashAndCacheResourceMapper.groovy</span></h2>
<pre class="snippet"><code class="line"><span class="lineNumber">28:</span> if (log.debugEnabled) {</code><code class="line"><span class="lineNumber">29:</span> log.debug "Setting caching headers on ${req.requestURI
Проблема в том, что cacheHeadersService не внедряется или не имеет значения null в плагине cacheheaders.
Пытаясь решить эту проблему, я скопировал содержимое cached-resources-plugin 1.1 из target/work/plugins в локальную папку и добавил следующую строку:
grails.plugin.location.'cached-resources' = "../grailsplugins/cached-resources-1.1"
Намерение состояло в том, чтобы исправить эту ошибку самостоятельно.
Однако, как ни странно, при локальном использовании плагина проблема с внедрением cacheHeadersService исчезла!
Как плагин может работать по-разному при локальном использовании и при обычной установке?
Возможно, это проблема с загрузчиком, когда теперь плагин cache-resources-plugin загружается после того, что объявляет службу, но, тем не менее, стоит сообщить об этом.
В файле dependencies.groovy плагина cache-resources объявляется зависимость:
compile ":cache-headers:1.0.4"
но, очевидно, он не загружается перед плагином, если только он не загружается из локального каталога, странно!
Мне также интересно, так как плагин cache-resources объявляет зависимость от tomcat :
build(":tomcat:$grailsVersion",
":release:2.0.3",
":rest-client-builder:1.0.2") {
export = false
}
является ли кот требованием? При попытке перейти на Jetty в основном приложении процесс сборки завершается сбоем, говоря, что tomcat не может быть найден в репозитории.
build ":jetty:2.0.3"// ":tomcat:7.0.52.1"
Я только что нашел эти похожие вопросы:
Плагин кэшированных ресурсов не работает? Ресурсы Grails Cache не работают Ресурс не найден в приложении Grails с подключаемыми модулями кеша