2013-01-24 32 views
17

Có ai may mắn chạy ứng dụng Grails 1.3.7 với Java 7 không? Tôi đã tạo ra một ứng dụng Grails 1.3.7 hoàn toàn mới và đã thử chạy nó dưới Java 7. Tôi nhận được lỗi dưới đây nhưng ứng dụng xuất hiện để chạy ok. Chúng tôi có một vài 1.3.7 ứng dụng mà chúng tôi không muốn nâng cấp lên Grails 2.x, vì vậy bất kỳ ý tưởng nào cũng sẽ được đánh giá cao.Grails 1.3.7/Java 7 Khả năng tương thích

Unable to use direct char[] access of java.lang.String 
java.lang.NoSuchFieldException: count 
    at java.lang.Class.getDeclaredField(Class.java:1899) 
    at org.codehaus.groovy.grails.web.util.StringCharArrayAccessor.<clinit>(StringCharArrayAccessor.java:53) 
    at org.codehaus.groovy.grails.web.util.StreamCharBuffer.readAsString(StreamCharBuffer.java:531) 
    at org.codehaus.groovy.grails.web.util.StreamCharBuffer.toString(StreamCharBuffer.java:552) 
    at org.codehaus.groovy.grails.web.pages.FastStringWriter.getValue(FastStringWriter.java:59) 
    at org.codehaus.groovy.grails.web.pages.FastStringWriter.toString(FastStringWriter.java:55) 
    at org.codehaus.groovy.grails.web.pages.GroovyPageParser.startTag(GroovyPageParser.java:1119) 
    at org.codehaus.groovy.grails.web.pages.GroovyPageParser.page(GroovyPageParser.java:801) 
    at org.codehaus.groovy.grails.web.pages.GroovyPageParser.generateGsp(GroovyPageParser.java:380) 
    at org.codehaus.groovy.grails.web.pages.GroovyPageParser.parse(GroovyPageParser.java:326) 
    at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.buildPageMetaInfo(GroovyPagesTemplateEngine.java:584) 
    at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:493) 
    at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplateWithResource(GroovyPagesTemplateEngine.java:473) 
    at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:246) 
    at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplateForUri(GroovyPagesTemplateEngine.java:373) 
    at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplateForUri(GroovyPagesTemplateEngine.java:345) 
    at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:262) 
    at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:146) 
    at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:81) 
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
    at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.renderViewForUrlMappingInfo(UrlMappingsFilter.java:260) 
    at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:189) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.obtainContent(GrailsPageFilter.java:245) 
    at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:134) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:104) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:69) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 
    at java.lang.Thread.run(Thread.java:722) 

Trả lời

9

Khó chịu nhưng an toàn để bỏ qua và được sửa trong 2.1.1 và 2.2 - xem https://github.com/grails/grails-core/issues/2359 để biết chi tiết.

+0

Một chút liên quan - Tôi vẫn gặp sự cố với Grails 2.2 và JDK 1.7 khi sử dụng maven để tạo dự án. Vui lòng xem câu hỏi của tôi tại: http://stackoverflow.com/questions/15037082/maven-build-for-grails-2-2-0-app-fails-with-jdk-1-7-could-not-find- artifact-com –

2

Từ những gì tôi nhìn thấy in the source code, bạn có thể thiết lập thuộc tính JVM stringchararrayaccessor.disabled-đúng.

+0

Điều này làm việc với grails 1.3.6 và java7. Mục đích của lớp này có vẻ là hiệu suất liên quan, vì vậy nó vẫn còn để được nhìn thấy nếu có một tác động đáng chú ý. – Joseph

+0

Làm cách nào để đặt thuộc tính này? – Danijel

+0

Bất kỳ cú pháp nào tôi đã thử không hoạt động, ví dụ '-Dstringchararrayaccessor.disabled = true'. Bất kỳ ý tưởng? – Danijel

14

Đặt JAVA_OPTS hệ thống sở hữu:
Windows: SET JAVA_OPTS=-Dstringchararrayaccessor.disabled=true
Unix: export JAVA_OPTS=-Dstringchararrayaccessor.disabled=true

+0

Điều này làm việc cho chúng tôi cho một ứng dụng Grails 1.3.7 trên Java 7 – Christian

+0

bạn có nghĩa là để thiết lập một biến môi trường? – eeadev

1

Fix cho folks quan sát cùng một vấn đề khi khởi động CollabNet Subversion Edge Server 4.x.

Đoán địa điểm phù hợp để thêm JAVA_OPTS = -Dstringchararrayaccessor.disabled = true, không phải là tập lệnh khởi động csvn mà đúng hơn là phần mềm đóng gói tanukisoft conf.

Aka, chỉnh sửa $ csvn_home/data/conf/csvn-wrapper.conf và thêm,

wrapper.java.additional.x = -Dstringchararrayaccessor.disabled = true

(nơi x không được sử dụng tiếp theo theo thứ tự)

Các vấn đề liên quan