2010-08-18 17 views
5

Je déploie une guerre faite avec "Grails War" à un serveur jetée. Dans la mesure où je peux déterminer, Grails construit avec Sun JDK 1.6.0_17-b04 et jetty fonctionne sur Sun JDK 1.6.0.16 (les deux sur Linux).Grails IncompatibleClassChangeError

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) 

Comment ce problème peut-il être résolu ou débogué davantage?

Répondre

11

Exécutez grails clean avant d'exécuter grails war.

+0

propre m'a aidé aussi. c'était un conflit de version dans mon cas. est arrivé seulement lors du débogage. –

+0

chaque fois que je l'ai vu, je l'ai réparé à travers les grails propres ainsi –

0

Vous êtes probablement confronté à un conflit JAR. À savoir votre environnement de construction utilise un pot, et runtime (Jetty) utilise un pot en conflit. Cela arrivait souvent avec diverses piles d'analyse XML. Essayez de regarder les pots utilisés par la jetée et comparez-les à ceux de votre projet.

3

Selon another post, le code Groovy qui utilise des exceptions qui a été compilé avec une version de Java avant 7 n'est pas compatible avec Java 7.

Plus d'informations peuvent être trouvées here.