java.lang.illegalstateexception 无法检索 entitymanagerfactory for unitname null

java.lang.illegalstateexception unable to retrieve entitymanagerfactory for unitname null

我写 Entity.jar。它的 EJB 模块包含实体 class 和 etitydao class。当我 运行 它在 GlassFish 上时,我有错误:

Caused by: java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null
    at com.sun.enterprise.container.common.impl.EntityManagerWrapper.init(EntityManagerWrapper.java:138)
    at com.sun.enterprise.container.common.impl.EntityManagerWrapper.doTxRequiredCheck(EntityManagerWrapper.java:158)
    at com.sun.enterprise.container.common.impl.EntityManagerWrapper.doTransactionScopedTxCheck(EntityManagerWrapper.java:151)
    at com.sun.enterprise.container.common.impl.EntityManagerWrapper.persist(EntityManagerWrapper.java:281)
    at com.styl.thincapayment.dao.impl.DataAccessImpl.insertToDatabase(DataAccessImpl.java:42)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)

我认为它来自 persistence.xml 。我放错地方了如何解决这个问题。

persistence.xml 应放在文件夹 CLASS_PATH_ROOT/META-INF 内。

如果你使用 Maven 的 standard project layout ,路径应该是 src/main/resources/META-INF/persistence.xml