1

我有一个自定义标签,它在其源代码中使用枚举。当我从 IntelliJ Idea 或控制台(使用 grails run-app)运行应用程序时,应用程序运行良好,但如果我将其部署为 Tomcat 中的 war 文件,则会出现如下异常:

    org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException:
    处理 GroovyPageView 时出错:执行标签时出错
    : 试图访问方法
    app.MyEnum.(Ljava/lang/String;ILjava/lang/String;)V 来自类
    app.MyEnum.Enum$1

枚举看起来像这样:

公共枚举 MyEnum {

    VALUE1(“枚举值 1”){
        无效打印编号(整数){
          println (数字)
        }
    },
    VALUE2("EnumValue2") {
        无效打印编号(整数){
          println (数字 * 2)
        }
    }

    静态最终 MyEnum DEFAULT = VALUE1

    最终字符串名称

    私人我的枚举(字符串名称){
        this.name = 名称
    }

    抽象无效 printNumber(int number) {
    }

}

UPD:如果我将 MyEnum 的构造函数公开,一切都会正常工作,但这似乎很尴尬,我仍然不明白为什么没有 public 修饰符它不能工作。

4

0 回答 0