我该如何解决这个问题:“ClassDefFoundError:org / codehaus / groovy / grails / commons / ConfigurationHolder”?

时间:2015-03-14 15:05:08

标签: grails

我正在尝试运行我的grails项目,我从2.3.5升级到2.4.4。 在尝试运行它之后,我收到了这些错误:

|Running Grails application
context.GrailsContextLoaderListener Error initializing the application: org/codehaus/groovy/grails/commons/ConfigurationHolder
java.lang.NoClassDefFoundError: org/codehaus/groovy/grails/commons/ConfigurationHolder
    at grails.plugin.hibernate3.HibernatePluginSupport$__clinit__closure1.doCall(HibernatePluginSupport.groovy:129)
    at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:754)
    at grails.spring.BeanBuilder.beans(BeanBuilder.java:584)
    at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:527)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.grails.commons.ConfigurationHolder
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    ... 8 more
Error |
Forked Grails VM exited with error

2 个答案:

答案 0 :(得分:2)

基于Grail的迁移文档,看起来他们已经从2.4中删除了ConfigurationHolder。

您需要更新hibernate插件。

来自他们的文件:

  

静态持有人类以下已弃用的类已经过了   从Grails 2.4.x中移除:

     

org.codehaus.groovy.grails.commons.ApplicationHolder   org.codehaus.groovy.grails.commons.ConfigurationHolder   org.codehaus.groovy.grails.plugins.PluginManagerHolder   org.codehaus.groovy.grails.web.context.ServletContextHolder   org.codehaus.groovy.grails.compiler.support.GrailsResourceLoaderHolder   如果您或您安装的任何插件正在使用这些类   将得到编译错误。可以通过更新来纠正问题   改为使用新插件并使用grails.util.Holders。

     

如果您的应用程序使用jquery插件,则需要更新到   版本1.11.0.2或更高版本作为插件的先前版本使用   ApplicationHolder类的。如果您的应用程序使用资源   您需要像以前一样更新到1.2.7或更高版本的插件   该插件的版本使用了ConfigurationHolder类。

迁移文档:http://grails.github.io/grails-doc/2.4.x/guide/upgradingFrom23.html

答案 1 :(得分:-1)

如果您正在使用Eclipse,请转到Java构建路径,订单和导出,勾选所有库,然后执行应用程序