首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >grails上的NoClassDefFoundError (Grails2.5.0)

grails上的NoClassDefFoundError (Grails2.5.0)
EN

Stack Overflow用户
提问于 2015-03-30 00:49:04
回答 2查看 1.3K关注 0票数 2

当我尝试使用Grails 2.5.0运行一个新创建的项目时:

代码语言:javascript
复制
$ grails create-app test250
$ cd test250
$ grails run-app

我得到以下错误:

代码语言:javascript
复制
| Running Grails application
| Error java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
| Error     at org.grails.plugins.tomcat.fork.ForkedTomcatServer.<clinit>(ForkedTomcatServer.groovy:44)
| Error Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
| Error     at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
| Error     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
| Error     at java.security.AccessController.doPrivileged(Native Method)
| Error     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
| Error     at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
| Error     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
| Error     at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
| Error     ... 1 more
Exception in thread "main" 
| Error Forked Grails VM exited with error

我的机器正在运行OSX10.10.2,我有几个项目运行在Grails2.2.5上,没有问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-31 23:01:58

使用GVM (正如杰夫指出的那样)来管理安装在我的计算机上的不同Grails版本,解决了这个问题。

票数 0
EN

Stack Overflow用户

发布于 2015-03-30 02:50:49

看起来问题是Tomcat插件间接使用了共用日志(ForkedTomcatServer扩展了引用org.apache.commons.logging.Log的Grails ForkedGrailsProcess类),但它没有导出,也不是Grails依赖项。

它是资产管道插件的一种间接依赖,因此应该使jar可用,并为大多数用户绕过bug。您是否在BuildConfig.groovy中将资产管道作为独立插件删除?

您应该能够通过在BuildConfig.groovy中显式地为公用日志添加一个依赖项来工作:

代码语言:javascript
复制
dependencies {
   runtime 'commons-logging:commons-logging:1.2'
   ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29336812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档