Exception Grails不兼容ClassChangeError

Exception Grails不兼容ClassChangeError,exception,grails,jetty,war,Exception,Grails,Jetty,War,我将使用“GrailsWar”创建的war部署到jetty服务器 据我所知,Grails使用Sun JDK 1.6.0_17-b04构建,jetty在Sun JDK 1.6.0.16上运行(两者都在linux上) 2010-08-18 07:33:47.018:WARN::嵌套在org.springframework.beans.factory.access.BootstrapException:执行引导时出错;嵌套异常为org.codehaus.groovy.runtime.invokeRis

我将使用“GrailsWar”创建的war部署到jetty服务器

据我所知,Grails使用Sun JDK 1.6.0_17-b04构建,jetty在Sun JDK 1.6.0.16上运行(两者都在linux上)

2010-08-18 07:33:47.018:WARN::嵌套在org.springframework.beans.factory.access.BootstrapException:执行引导时出错;嵌套异常为org.codehaus.groovy.runtime.invokeRissionException:
java.lang.CompatibleClassChangeError:java.lang.ClassLoader在运行时和编译时的构造函数数量不匹配。预期为3,但得到2:
java.lang.CompatibleClassChangeError:java.lang.ClassLoader在运行时和编译时的构造函数数量不匹配。期望3,但得到2
位于grails.plugin.scopedproxy.AlwaysReloadableMartClassLoader.(AlwaysReloadableMartClassLoader.groovy:28)
位于grails.plugin.scopedproxy.scopedproxy.wrapInSmartClassLoader(scopedproxy.groovy:154)

如何进一步解决或调试此问题?

在运行
grailswar
之前运行
grailsclean

您可能遇到了JAR冲突。也就是说,您的构建环境使用的是一个jar,而运行时(Jetty)使用的是一个冲突的jar。这通常发生在各种XML解析堆栈中

尝试查看jetty使用的JAR,并将其与项目中的JAR进行比较。

根据,使用Java 7之前版本编译的异常的Groovy代码与Java 7不兼容


可以找到更多信息。

clean也帮助了我。就我而言,这是一个版本冲突。只在调试时发生。每当我看到这一点,我都会通过GrailsClean将其修复
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)