2010-08-18 2 views
5

Я развертываю войну, сделанную с помощью войны «Грайлс», на причал.Grails IncompatibleClassChangeError

Насколько я могу судить, Grails строит с Sun JDK 1.6.0_17-b04 и работает на Sun JDK 1.6.0.16 (оба на Linux).

2010-08-18 07:33:47.018:WARN::Nested in org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exception is org.codehaus.groovy.runtime.InvokerInvocationException:  
java.lang.IncompatibleClassChangeError: the number of constructors during runtime and compile time for java.lang.ClassLoader do not match. Expected 3 but got 2: 
java.lang.IncompatibleClassChangeError: the number of constructors during runtime and compile time for java.lang.ClassLoader do not match. Expected 3 but got 2 
at grails.plugin.scopedproxy.AlwaysReloadableSmartClassLoader.<init>(AlwaysReloadableSmartClassLoader.groovy:28) 
at grails.plugin.scopedproxy.ScopedProxyUtils.wrapInSmartClassLoader(ScopedProxyUtils.groovy:154) 

Как эта проблема может быть решена или отлажена дальше?

ответ

11

Запуск grails clean перед запуском grails war.

+0

чистый помог мне тоже. это был конфликт версий в моем случае. произошло только при отладке. –

+0

в любое время, когда я это видел, я исправил его и через грабли –

0

Возможно, вы столкнулись с конфликтом JAR. А именно, ваша среда сборки использует одну банку, а среда выполнения (Jetty) использует конфликтующую банку. Это часто случалось с различными стеками анализа XML.

Попробуйте взглянуть на банки, используемые причалом, и сравнить их с тем, что есть в вашем проекте.

3

Согласно another post, Groovy код, который использует исключения, который был скомпилирован версии Java до 7 не совместим с Java 7.

Больше информации можно найти here.

Смежные вопросы