将我的0.3.1 Griffon应用程序升级到0.9.4后发现以下编译错误:
[griffonc] Threading injection feature disabled.
[griffonc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
[griffonc] ..\sgmentia-client\griffon\app\models\com\nortia\sgmentia\client\maestros\MaestrosModel.groovy: -1: firePropertyChange(java.lang.String,java.lang.Object,java.lang.Object) in com.nortia.sgmentia.client.maestros.MaestrosModel cannot override firePropertyChange in com.nortia.sgmentia.client.maestros.MaestrosModelSupport; attempting to assign weaker access privileges; was public
[griffonc] @ line -1, column -1.
[griffonc] 1 error
Compilation error: Compilation Failed
我的代码中有 firePropertyChange 没有提及,所以我不知道该如何继续。
所引用的类如下所示:
abstract class MaestrosModelSupport
...
class MaestrosModel extends MaestrosModelSupport
想法?
我遵循命名约定(每个Model必须以XXXModel结束),现在项目编译。
然而,经过一些重构后,还有一些新的东西:
[copy] Copying 1 file to C:\maestro\desarrollo\projects\interactionManager\sgmentia-client\staging
ERROR [main]: [1] ApplicationDefaultExceptionHandler Se ha producido un error inesperado en la aplicaci¾n: Interfaces must have java.lang.Object as superclass in class file com/nortia/sgmentia/client/DocumentController
java.lang.ClassFormatError: Interfaces must have java.lang.Object as superclass in class file com/nortia/sgmentia/client/DocumentController
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
那么现在呢?
答案 0 :(得分:1)
这似乎是https://jira.codehaus.org/browse/GRIFFON-440的另一个例子
我想知道您是如何设置代码库的,例如,为什么模型放在sgmentia-client\griffon\app\models
而不是sgmentia-client\griffon-app\models
。
您可以将抽象模型类作为所有模型的基类,只要遵循约定,就应该从get get中获得支持
abstract class AbstractSupportModel { ... }
class MaestrosModel extends AbstractSupportModel { ... }
AbstractSupportModel
和MaestrosModel
都放在sgmentia-client\griffon-app\models
。