2

我正在尝试使用 Lift JPA,当我引用模型时,它会调用超级构造函数,但我遇到了异常:

object Model extends LocalEMF("LiftPersistenceUnit") with RequestVarEM

问题是异常隐藏在这个异常后面:

java.lang.NoClassDefFoundError: Could not initialize class...

所以,我的问题是:在这种情况下记录/处理异常的最佳方法是什么?

或者,任何人都可以推荐另一种使用 Lift JPA 的模式吗?模型一直是代码的方式是推荐的方式,但它不是非常用户友好的 IMO。这个想法是有一个可以通过请求 variable.sc 访问的单例实体管理器工厂

4

1 回答 1

4

LocalEMF我能想到在's 的构造函数之前执行某些东西的唯一方法:

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
于 2013-01-01T23:10:18.917 回答