我觉得这对你来说很简单:
我有一个Controller,我想在其中访问另一个类XY(groovy类,位于包src / groovy中)中的静态字段。但这会得到一个NoClassDefFoundError。
public class XY{ public static final String a = "something" }
in controller: XY.a causes error!!!
与XY类相同的包中的其他类不会导致问题。
我做错了什么?
答案 0 :(得分:1)
您似乎已经过度简化了示例。 NoClassDefFoundError
不与ClassNotFoundException
相同。当班级不在时,会发生ClassNotFoundException
。 NoClassDefFoundError
在班级出现时发生,但它引用的东西不是。所以修复起来要复杂得多。
XY包是否与文件夹结构匹配(即,如果它位于“com.foo”包中,是否在src / groovy / com / foo中)?
尝试运行'grails clean'并再次运行它 - 可能会有一些编译器混淆并重新编译所有内容都可以修复它,或显示真正的问题。
答案 1 :(得分:0)
我发现了问题所在:
编译类XY,但我尝试将“”分配给(意外声明的)静态整数。
这就是为什么整个班级无法初始化并且错误发生的原因。
是否有任何属性可以将编译器设置为打印警告?
感谢您的提示!