2010-08-18 4 views
5

"grails war"로 만든 전쟁을 부두 서버에 배포합니다.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 war을 실행하기 전에 grails clean을 실행하십시오.

+0

도 도움이되었습니다. 제 경우에는 버전 충돌이었습니다. 디버깅 할 때만 발생했습니다. –

+0

언제든지 이걸 보았고, grails clean을 통해서도 고쳤습니다. –

0

아마도 JAR 충돌이 발생하고 있습니다. 즉, 빌드 환경이 하나의 jar를 사용하고 있으며 런타임 (Jetty)이 충돌하는 jar를 사용하고 있습니다. 이것은 종종 다양한 XML 구문 분석 스택에서 발생합니다.

부두가 사용하는 항아리를보고 프로젝트의 것들과 비교해보십시오.

3

another post에 따르면, 이전 7 자바의 버전으로 컴파일 된 예외를 사용 그루비 코드는 here를 찾을 수 있습니다 자바 7

더 많은 정보와 호환되지 않습니다.

관련 문제