java - Groovy classloader exception when using template engine -
java - Groovy classloader exception when using template engine -
i'm new groovy , tried utilize gstringtemplateengine execute groovy scripts on jboss 5.1
everything works fine in local development environment, fails when moved dev server managed different team.
i found exception thrown @
try { groovyclass = loader.parseclass(new groovycodesource(templateexpressions.tostring(), "gstringtemplatescript" + counter.incrementandget() + ".groovy", "x")); } grab (exception e) { throw new groovyruntimeexception("failed parse template script (your template may contain error or trying utilize expressions not supported): " + e.getmessage()); }
on gstringtemplateengine.class, line 190
the exception message
groovy.lang.groovyruntimeexception: startup failed: general error during class generation: uri not hierarchical java.lang.illegalargumentexception: uri not hierarchical @ java.io.file.<init>(file.java:363) @ org.jboss.net.protocol.file.fileurlconnection.<init>(fileurlconnection.java:62) @ org.jboss.net.protocol.file.handler.openconnection(handler.java:40) @ java.net.url.openconnection(url.java:945) @ java.net.urlclassloader.getpermissions(urlclassloader.java:474) @ groovy.lang.groovyclassloader.getpermissions(groovyclassloader.java:335) @ java.security.secureclassloader.getprotectiondomain(secureclassloader.java:235) @ java.security.secureclassloader.defineclass(secureclassloader.java:141) @ groovy.lang.groovyclassloader.access$300(groovyclassloader.java:55) @ groovy.lang.groovyclassloader$classcollector.createclass(groovyclassloader.java:475) @ groovy.lang.groovyclassloader$classcollector.onclassnode(groovyclassloader.java:492) @ groovy.lang.groovyclassloader$classcollector.call(groovyclassloader.java:496) @ org.codehaus.groovy.control.compilationunit$14.call(compilationunit.java:792) @ org.codehaus.groovy.control.compilationunit.applytoprimaryclassnodes(compilationunit.java:1024) @ org.codehaus.groovy.control.compilationunit.dophaseoperation(compilationunit.java:562) @ org.codehaus.groovy.control.compilationunit.processphaseoperations(compilationunit.java:540) @ org.codehaus.groovy.control.compilationunit.compile(compilationunit.java:517) @ groovy.lang.groovyclassloader.doparseclass(groovyclassloader.java:283) @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:260) @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:244)
i'm not sure why throwing uri not hierarchical error. i'm assuming has permissions , groovyclassloader not able parse generated class.
has seen error before? helpful if can provide suggestions on debugging/fixing issue.
not sure of real cause of issue, found workaround.
created re-create of gstringtemplateengine , replaced
try { groovyclass = loader.parseclass(new groovycodesource(templateexpressions.tostring(), "gstringtemplatescript" + counter.incrementandget() + ".groovy", "x")); } grab (exception e) { throw new groovyruntimeexception("failed parse template script (your template may contain error or trying utilize expressions not supported): " + e.getmessage()); }
with
try { groovyclass = loader.parseclass(templateexpressions.tostring(), "gstringtemplatescript" + counter.incrementandget() + ".groovy"); } grab (exception e) { throw new groovyruntimeexception("failed parse template script (your template may contain error or trying utilize expressions not supported): " + e.getmessage()); }
removed groovycodesource , passed template string instead parseclass method.
java groovy template-engine gstring
Comments
Post a Comment