java.lang.illegalstateException无法检索entitymanagerfactory的unitname null

标签 java maven jakarta-ee jpa glassfish

我编写了Entity.jar。它的EJB模块包含实体类和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 。我把它放错地方了。如何解决这个问题。

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

  • 声明EntityManager:

    @PersistenceContext(unitName="entities")

    protected EntityManager实体管理器;

最佳答案

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

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

关于java.lang.illegalstateException无法检索entitymanagerfactory的unitname null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28484434/

相关文章:

maven - 从 maven-antrun-plugin 中的私有(private)存储库请求自定义 ant 任务

java - 在 jBoss AS 7 中部署 EAR,其中包含 WAR 中的 Web 服务

maven - 如何在 Intellij Idea 13 中将 Maven 项目部署到 Glassfish Server

java - 从 Eclipse 中调试 Maven 程序集

java - java中可以初始化数据成员,为什么还需要默认构造函数?

java - 如何使用 PDFBox 将 PDF 文件的一部分渲染为图像?

java - jzy3d 中缺少示例代码导入

java - Maven 不在 CentOS7 上工作。无法找到请求目标的有效证书路径

java - 将 EJB3 注入(inject)基于注释的 JSF2 支持 bean 导致 javax.naming.NameNotFoundException :

java - 如何使用 CRUDRepository 保存列表但最后提交