2013-01-24 11 views
17

Qualcuno ha avuto la fortuna di eseguire un'applicazione Grails 1.3.7 con Java 7? Ho creato una nuova app Grails 1.3.7 e ho provato a eseguirla sotto Java 7. Ottengo l'errore di sotto, ma l'app sembra funzionare correttamente. Abbiamo alcune app 1.3.7 che siamo riluttanti ad aggiornare a Grails 2.x, quindi qualsiasi idea sarebbe molto apprezzata.Grails 1.3.7/Java 7 Compatibilità

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) 

risposta

9

Questo è fastidioso, ma sicura di ignorare, e fissati in 2.1.1 e 2.2 - vedi https://github.com/grails/grails-core/issues/2359 per i dettagli.

+0

Un po 'correlato - Ho ancora problemi con Grails 2.2 e JDK 1.7 quando si utilizza maven per creare il progetto. Si prega di vedere la mia domanda a: http://stackoverflow.com/questions/15037082/maven-build-for-grails-2-2-0-app-fails-with-jdk-1-7-could-not-find- artefatto- –

2

Da quello che vedo in the source code, è possibile impostare la proprietà JVM stringchararrayaccessor.disabled-vero.

+0

Funziona con Grails 1.3.6 e java7. L'intento di questa classe sembra essere legato alle prestazioni, quindi resta da vedere se c'è un impatto notevole. – Joseph

+0

Come si imposta questa proprietà? – Danijel

+0

Qualsiasi sintassi che ho provato non funziona, ad esempio '-Dstringchararrayaccessor.disabled = true'. Qualche idea? – Danijel

14

Impostare la proprietà di sistema JAVA_OPTS:
di Windows: SET JAVA_OPTS=-Dstringchararrayaccessor.disabled=true
Unix: export JAVA_OPTS=-Dstringchararrayaccessor.disabled=true

+0

Questo ha funzionato per noi per un'applicazione Grails 1.3.7 su Java 7 – Christian

+0

intendi impostare una variabile di ambiente? – eeadev

1

Fix per la gente osservando stesso problema quando si inizia 4.x. CollabNet Subversion Server Edge

Indovina il posto giusto per aggiungere JAVA_OPTS = -Dstringchararrayaccessor.disabled = true, non era lo script di avvio csvn ma piuttosto il wrapper di tanukisoft conf.

Aka, modificare $ csvn_home/dati/conf/csvn-wrapper.conf e aggiungere,

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

(dove x è inutilizzato in sequenza)