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未在cacheheaders插件中注入或为null。
尝试解决这个问题我将cached-resources-plugin 1.1的内容从target / work / plugins复制到本地文件夹并添加了以下行:
grails.plugin.location.'cached-resources' = "../grailsplugins/cached-resources-1.1"
目的是自己解决这个问题。
然而,奇怪的是,当插件在本地使用时,注入cacheHeadersService的问题就消失了!
当在本地使用时,插件如何以不同的方式运行?与正常安装相比?
也许这是一个加载器问题,现在缓存资源插件是在声明服务之后加载的,但仍然值得报告。
在cache-resources插件的dependencies.groovy中,它声明了依赖项:
compile ":cache-headers:1.0.4"
但是很明显它没有在插件之前加载,除非从本地目录加载,很奇怪!
我也想知道,因为cache-resources插件声明了对tomcat的依赖:
build(":tomcat:$grailsVersion",
":release:2.0.3",
":rest-client-builder:1.0.2") {
export = false
}
是tomcat的要求吗?尝试在主应用程序中更改为Jetty,构建过程失败,说在存储库中找不到tomcat。
build ":jetty:2.0.3"// ":tomcat:7.0.52.1"
我刚刚发现了类似的问题:
Cached-resources plugin is not working? Grails Cache resources not working Resource not found on grails appliction with cache plugins