播放:方法代码长度无效

时间:2011-08-30 15:12:32

标签: templates groovy playframework

我在HTML页面上添加了一个

的条件
#{if userObject == null}
<a href="/login">Text</a>
#{/if}

代码在开发模式下工作正常,并在PROD模式下出现此错误。

SEVERE: Cannot start in PROD mode with errors
java.lang.ClassFormatError: Invalid method Code length 65561 in class file Template_M1175588447$_run_closure1_closure2
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at play.templates.GroovyTemplate$TClassLoader.defineTemplate(GroovyTemplate.java:77)
    at play.templates.GroovyTemplate.compile(GroovyTemplate.java:133)
    at play.templates.TemplateLoader.scan(TemplateLoader.java:184)
    at play.templates.TemplateLoader.scan(TemplateLoader.java:194)
    at play.templates.TemplateLoader.scan(TemplateLoader.java:194)
    at play.templates.TemplateLoader.getAllTemplate(TemplateLoader.java:164)
    at play.Play.preCompile(Play.java:501)
    at play.Play.init(Play.java:273)
    at play.server.Server.main(Server.java:131)

有什么出路吗

2 个答案:

答案 0 :(得分:3)

我认为您的问题与您添加的代码无关,而是让模板“太大”超过了方法允许的行大小(在Java中)。

可能你正在修补大模板,或者你的页面很长。

答案 1 :(得分:1)

正如官方Java文档中所说,这意味着jvm尝试读取格式错误的类文件。因此,尝试删除所有类文件,tmp文件夹并重新编译。