2011-12-24 6 views
0

Есть приложение Grails 2 и выполнение вводного приложение работает нормально, запустите войнам не удается:Grails 2, вводная война -> java.lang.ClassNotFoundException: grails.test.mixin.services.ServiceUnitTestMixin

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,

Как это случилось полный headscratcher для меня:

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

... любая обратная связь будет наиболее приложение reciated.

+0

Вы пытались запустить 'grails clean'? – OverZealous

+0

... да, просто попробовал снова, такую ​​же ошибку после очистки. – vector

+0

Вы пытались удалить весь каталог ~/.grails (или эквивалент на Mac/Windows)? Вы пытались удалить свои целевые и внешние каталоги до начала войны? –

ответ

3

я столкнулся с аналогичной проблемой и решить ее, выполнив следующие действия в указанном порядке:

  1. Удалить все в целевом каталоге
  2. Grails чистой
  3. Grails компилировать
  4. Grails вводных войн
3

У меня была точно такая же проблема, и принятый ответ не сработал для меня, поэтому я нырнул немного ближе ...

Что я нашел - это класс MyServiceTests, который каким-то образом сумел пробраться из grails-app/test/unit/ в grails-app/services/; вероятно, во время какого-то переименования пакетов переименования. После перемещения MyServiceTests обратно в тест/блок все снова отлично работает.

1

Имя пакета контроллера должно совпадать с именем пакета класса домена. Убедитесь, что имена пакетов совпадают по всему проекту, включая нижний и верхний регистр в имени пакета. Некоторые IDE несовместимы в обновлении случайных опечаток во всем проекте.

1

У меня была аналогичная ситуация с johanneslink.

Приложение не запускается в Tomcat. Проверка показала catalina.out ClassNotFoundException, вызванное grails.test.mixin.services.ServiceUnitTestMixin

Я использовал Grep искать все вхождения «ServiceUnitTestMixin» в целом папке приложения (начиная с родительского Граалей-приложение). Я обнаружил, что каким-то образом я импортировал grails.test.mixin.Mock в контроллер.

Как только я удалил это и очистил/скомпилировал военный файл, он развернулся и начал нормально.