2010-08-18 8 views
5

Ich stelle einen Krieg mit "Grails War" auf einem Anlegestegserver bereit.Grails IncompatibleClassChangeError

Soweit ich feststellen kann, baut Grails mit Sun JDK 1.6.0_17-b04 und Jetty läuft auf Sun JDK 1.6.0.16 (beide unter 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) 

Wie kann dieses Problem weiter gelöst oder behoben werden?

Antwort

11

Führen Sie grails clean aus, bevor Sie grails war ausführen.

+0

sauber half mir auch. In meinem Fall war es ein Versionskonflikt. passierte nur beim Debuggen. –

+0

immer wenn ich das gesehen habe, habe ich es auch durch Grails sauber gemacht –

0

Sie stoßen wahrscheinlich auf einen JAR-Konflikt. Die Build-Umgebung verwendet nämlich ein JAR, und Runtime (Jetty) verwendet ein in Konflikt stehendes JAR. Dies ist häufig bei verschiedenen XML-Parsing-Stacks der Fall.

Versuchen Sie, die von Jetty verwendeten Jars zu betrachten und vergleichen Sie sie mit denen in Ihrem Projekt.

3

Nach another post, Groovy-Code, der Ausnahmen verwendet, die mit einer Version von Java kompiliert wurde vor 7 ist nicht kompatibel mit Java 7.

Weitere Informationen finden Sie here finden.

Verwandte Themen