从grails 2.3.8 2.4升级时出现资源插件错误

时间:2014-06-03 17:41:38

标签: grails

我跟随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 |

3 个答案:

答案 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