0

有一个 Grails 2 应用程序并执行 run-app 工作正常,run-war 失败:

2011-12-24 12:43:40,996 [Thread-2] ERROR context.ContextLoader  - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: Lgrails/test/mixin/services/ServiceUnitTestMixin;
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NoClassDefFoundError: Lgrails/test/mixin/services/ServiceUnitTestMixin;
    at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
    at java.lang.Class.getDeclaredField(Class.java:1880)
    ... 5 more
Caused by: java.lang.ClassNotFoundException: grails.test.mixin.services.ServiceUnitTestMixin
    ... 7 more

在使用 Grails 2 获得了非常完美的体验之后,遇到了这个问题,

这是如何发生的,这对我来说是一个完整的头颅:

java.lang.NoClassDefFoundError: Lgrails/test/mixin/services/ServiceUnitTestMixin;

...任何反馈将不胜感激。

4

4 回答 4

3

我遇到了类似的问题并通过按顺序执行以下操作解决了它:

  1. 删除目标目录中的所有内容
  2. 圣杯清洁
  3. grails 编译
  4. 圣杯跑战
于 2012-02-03T17:23:43.943 回答
3

我遇到了完全相同的问题,并且接受的答案对我不起作用,所以我潜得更近了......

我发现的是一个MyServiceTests不知何故设法溜出grails-app/test/unit/的班级grails-app/services/;可能在某种包重命名重构期间。回到 MyServiceTests测试/单元后,一切都恢复正常了。

于 2012-10-25T07:45:25.897 回答
1

控制器的包名必须与域类的包名匹配。确保您的包名在整个项目中保持一致,包括包名中的小写和大写。一些 IDE 在更新整个项目中的意外拼写错误方面并不一致。

于 2013-08-20T14:47:36.130 回答
1

我和johanneslink有类似的情况。

该应用程序不会在 Tomcat 中启动。检查 catalina.out 显示由 grails.test.mixin.services.ServiceUnitTestMixin 引起的 ClassNotFoundException

我使用 grep 在整个应用程序文件夹中查找所有出现的“ServiceUnitTestMixin”(从 grails-app 的父级开始)。我发现不知何故我将 grails.test.mixin.Mock 导入了控制器。

一旦我删除了它并清理/编译了它部署和启动的war文件,它就很好了。

于 2015-03-11T14:05:06.123 回答