2010-08-18 21 views
5

Tôi triển khai một cuộc chiến được thực hiện với "chiến tranh grails" đến một máy chủ cầu cảng.Grails IncompatibleClassChangeError

Theo như tôi có thể xác định, Grails xây dựng với Sun JDK 1.6.0_17-b04 và cầu tàu chạy trên Sun JDK 1.6.0.16 (cả trên 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) 

Làm cách nào để giải quyết hoặc khắc phục sự cố này?

Trả lời

11

Chạy grails clean trước khi bạn chạy grails war.

+0

cũng đã giúp tôi. đó là một phiên bản xung đột trong trường hợp của tôi. chỉ xảy ra khi gỡ lỗi. –

+0

bất cứ khi nào tôi nhìn thấy điều này, tôi cũng đã cố định nó thông qua các grails sạch –

0

Có thể bạn đang gặp phải xung đột JAR. Cụ thể là môi trường xây dựng của bạn đang sử dụng một cái bình và thời gian chạy (Jetty) đang sử dụng một cái mâu thuẫn. Điều này thường xảy ra với các ngăn xếp phân tích cú pháp XML khác nhau.

Hãy thử nhìn vào các bình được sử dụng bởi cầu tàu và so sánh chúng với những cái trong dự án của bạn.

3

Theo another post, mã Groovy có sử dụng ngoại lệ mà đã được biên soạn với một phiên bản của Java trước 7 không tương thích với Java 7.

Thông tin chi tiết có thể được tìm thấy here.