我正在尝试使用Lift JPA,当我引用Model时,它调用超级构造函数我得到了一个例外:
object Model extends LocalEMF("LiftPersistenceUnit") with RequestVarEM
问题是异常隐藏在此异常后面:
java.lang.NoClassDefFoundError: Could not initialize class...
所以,我的问题是:在这种情况下,记录/处理异常的最佳方法是什么?
或者,任何人都可以推荐使用Lift JPA的其他模式吗? Model是代码的方式是推荐的方式,但它不是非常用户友好的IMO。我们的想法是拥有一个可以通过请求变量.sc
访问的单例实体管理器工厂答案 0 :(得分:3)
我可以想到在LocalEMF
的构造函数之前执行某些操作的唯一方法:
class Model(val init: Unit = println("Hai"))
extends LocalEMF("LiftPersistenceUnit") with RequestVarEM
也许您可以代理对LocalEMF("LiftPersistenceUnit")
的调用,并使用一些非凡的技巧添加适当的异常日志记录。
修改
我找到了它:
class LocalEMF(haha: String) { val e = throw new RuntimeException }
trait RequestVarEM
class Model(val init: Unit = println("Hai")) extends { val e =
try new LocalEMF("LiftPersistenceUnit") catch {
case t: Throwable => println("Catched: " + t); throw t
}
} with RequestVarEM