我跟随docs尝试将我的项目从2.3.8升级到2.4,但我遇到了这些错误
localhost-startStop-1] ERROR resource.ResourceProcessor - Unable to load resources
Message: No signature of method: groovy.util.ConfigObject.getGrailsPlugin() is applicable
for argument types: (java.lang.String) values: [lesscss-resources]
->> 5 | run in BootstrapResources
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 46 | doCall in org.grails.plugin.resource.module.ModuleDeclarationsFactory$_getModuleDeclarations_closure2
| 41 | getModuleDeclarations in org.grails.plugin.resource.module.ModuleDeclarationsFactory
| 715 | loadModules in org.grails.plugin.resource.ResourceProcessor
| 1013 | reloadAll . . . . . . in ''
| 166 | doCall in ResourcesGrailsPlugin$_closure3
| 262 | run . . . . . . . . . in java.util.concurrent.FutureTask
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 744 | run in java.lang.Thread
Error |
2014-06-03 13:38:16,282 [localhost-startStop-1] ERROR [localhost]. [/DocumentManagementSystem] - Exception starting filter sitemesh
Message: org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter
Line | Method
->> 59 | findClass in org.grails.plugins.tomcat.ParentDelegatingClassLoader
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 425 | loadClass in java.lang.ClassLoader
| 358 | loadClass in ''
| 262 | run in java.util.concurrent.FutureTask
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 744 | run . . . in java.lang.Thread
Error |
2014-06-03 13:38:16,300 [localhost-startStop-1] ERROR core.StandardContext - Error filterStart
Error |
这听起来像插件问题吗?或者我可能在文档中跳过的内容
这是我的buildconfig插件部分
plugins {
// plugins for the build system only
build ":tomcat8:8.0.5"
// plugins for the compile step
compile ":scaffolding:2.1.0"
compile ':cache:1.1.6'
// compile ":mail:1.0.5"
// compile ":ckeditor:4.4.0.0-SNAPSHOT"
compile ":searchable:0.6.7"
compile ":jquery:1.11.1"
// compile ":shiro:1.2.1"
// compile ":resources:1.2.8"
compile ':asset-pipeline:1.8.3'
// compile (":nimble:0.7"){
//
// exclude "servlet-api"
//
// }
// plugins needed at runtime but not for compilation
runtime ":hibernate:3.6.10.15" // or ":hibernate4:4.3.5.1"
runtime ":database-migration:1.4.0"
runtime ":jquery:1.11.1"
runtime ":resources:1.2.8"
新的sitemesh错误
Error |
2014-06-03 14:41:32,304 [localhost-startStop-1] ERROR [localhost].[/DocumentManagementSystem] - Exception starting filter sitemesh
Message: org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter
Line | Method
->> 61 | findClass in org.grails.plugins.tomcat.ParentDelegatingClassLoader
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 425 | loadClass in java.lang.ClassLoader
| 358 | loadClass in ''
| 262 | run in java.util.concurrent.FutureTask
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 744 | run . . . in java.lang.Thread
Error |
答案 0 :(得分:6)
您的web.xml可能仍包含对sitemesh过滤器的引用:
http://grails.org/doc/2.4.3/guide/upgradingFrom23.html
Sitemesh servlet过滤器已被删除,GSP布局功能现在由GrailsLayoutView处理。
将src / templates文件夹重命名为src / templates-old,然后运行grails install-templates。如果您之前自定义了web.xml,则需要编辑生成的web.xml以再次进行这些更改。
答案 1 :(得分:2)
正如文档中所述,您不再需要使用资源插件:
As of Grails 2.4 the resources plugin has been replaced with the asset-pipeline
现在你可以使用资产插件了。 使用此link,您可以轻松地将资源从2.3.8升级到2.4。
答案 2 :(得分:1)
这是JqueryUiPluginResources.groovy
中jQuery-ui插件中的以下两行中的问题:
def appCtx = org.codehaus.groovy.grails.commons.ApplicationHolder.application.mainContext
def plugin = appCtx.pluginManager.getGrailsPlugin('jquery-ui')
此修复程序出现在以下提交中:https://github.com/gpc/grails-jquery-ui/pull/13