【问题标题】:java.lang.illegalstateexception unable to retrieve entitymanagerfactory for unitname nulljava.lang.illegalstateexception 无法检索 unitname null 的 entitymanagerfactory
【发布时间】:2015-04-13 14:23:41
【问题描述】:

我写Entity.jar 。它的EJB Module 包含实体类和etitydao 类。当我在 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 。我放错地方了。如何解决此问题。

  • 我将持久性文件放在entities/src/resources/persistence.xml 中。我使用 Maven 来管理项目

  • 声明EntityManager:

    @PersistenceContext(unitName="entities")

    受保护的EntityManager entityManager;

【问题讨论】:

    标签: java maven jakarta-ee jpa glassfish


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢陈健。我修好了
    猜你喜欢
    • 1970-01-01
    • 2015-02-27
    • 2016-05-15
    • 1970-01-01
    • 2018-10-07
    • 2019-09-25
    • 1970-01-01
    • 2017-02-03
    • 2014-04-02
    相关资源
    最近更新 更多