2011-05-04 7 views
6

he tratar código de abajo ...Error general durante la conversión: No se ClassLoader adecuada encontrado para agarrar

@Grapes([ 
    @Grab('org.hsqldb:hsqldb:2.0.0'), 
    @GrabConfig(systemClassLoader=true, initContextClassLoader=true) 
]) 
import groovy.sql.Sql 
println Class.forName('org.hsqldb.jdbc.JDBCDriver').newInstance() 

Funciona en groovyConsole, pero no pudo correr con Web Start. Los siguientes son mensajes de error.

startup failed: 
General error during conversion: No suitable ClassLoader found for grab 

java.lang.RuntimeException: No suitable ClassLoader found for grab 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77) 
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:54) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190) 
    at groovy.grape.GrapeIvy.chooseClassLoader(GrapeIvy.groovy:173) 
    at groovy.grape.GrapeIvy$chooseClassLoader.callCurrent(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) 
    at groovy.grape.GrapeIvy.grab(GrapeIvy.groovy:239) 
    at groovy.grape.Grape.grab(Grape.java:141) 
    at groovy.grape.GrabAnnotationTransformation.visit(GrabAnnotationTransformation.java:282) 
    at org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:302) 
    at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:839) 
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:544) 
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:520) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:497) 
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:306) 
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:287) 
    at groovy.lang.GroovyShell.parseClass(GroovyShell.java:731) 
    at groovy.lang.GroovyShell.parse(GroovyShell.java:743) 
    at groovy.lang.GroovyShell.parse(GroovyShell.java:698) 
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:648) 
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:636) 
    at com.lyhdev.mrcode.ScriptLoader.loadGroovy(Unknown Source) 
    at com.lyhdev.mrcode.ScriptLoader$loadGroovy.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) 
    at Script1.run(Script1.groovy:30) 
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:650) 
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:636) 
    at com.lyhdev.mrcode.ScriptLoader.loadGroovy(Unknown Source) 
    at com.lyhdev.mrcode.ScriptLoader.main(Unknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.sun.javaws.Launcher.executeApplication(Launcher.java:1804) 
    at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1750) 
    at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1512) 
    at com.sun.javaws.Launcher.run(Launcher.java:130) 
    at java.lang.Thread.run(Thread.java:662) 

1 error 

Respuesta

1

Todo se trata de lo que están involucrados los cargadores de clases. Por ejemplo, veo el mismo problema con correr groovy de hormiga. Parece que el cargador de clases del sistema cuando ejecutas Groovy en Ant o Web Start no es un cargador de clases groovy o un cargador de raíz. Consulte isValidTargetClassLoader() desde GrapeIvy.groovy.

Una solución al problema sería asegurarse de que tiene un RootLoader maravilloso, agregue todas las rutas de clase necesarias en su secuencia de comandos y luego ejecute la aplicación desde su secuencia de comandos/clase groovy. Sería complicado con inicio web, supongo.

Cuestiones relacionadas