嵌入Java中的SimpleTemplateEngine出错:无法为类实例化自定义Metaclass:java.util.ArrayList

时间:2013-08-22 18:18:42

标签: groovy groovyshell

我有一个应用程序,我的用户使用SimpleTemplateEngine表示法输入HTML模板,并在Java类中使用上面的代码执行此模板:

new SimpleTemplateEngine().createTemplate(templateStr).make(map).toString()

我得到了这个错误:

groovy.lang.GroovyRuntimeException: Could not instantiate custom Metaclass for class: java.util.ArrayList. Reason: java.lang.NoSuchMethodException: groovy.runtime.metaclass.java.util.ArrayListMetaClass.<init>(groovy.lang.MetaClass)

我发现在Hibernate加载的JPA实体的java.util.ArrayLIst循环中发生错误:

<%for(int k=0; k< Registro[i].listUsers.size();k++){%>

HTML CODE

<%}%>

任何人都可以帮助我吗?我没有关于这个错误的更多想法...... 谢谢!

1 个答案:

答案 0 :(得分:0)

我猜测部分Registro[i]用于获取静态属性的值,该属性的名称保存在变量i下(或者至少会发生什么),除非getAt(String) 1}}方法已在Registro上重载。

无论哪种方式,我还猜测会返回一个listUsers属性至少应为Collection的对象。

可能问题在于所述listUsers属性的初始化。

可以使用一些Registro代码来更好地理解。