当持久性存在时,为什么持久性单元名为 null.xml
2022-09-04 21:53:21
我正在使用Wildfly 8.1和包含实体的EJB项目(EJB 3.2)。当尝试将实体管理器注入我的一个Bean时,我得到以下内容:
JBAS011440: Can't find a persistence unit named null in deployment \"EntitiesProject.jar\""},
"JBAS014771: Services with missing/unavailable dependencies" => [
"jboss.deployment.unit.\"EntitiesProject.jar\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"EntitiesProject.jar\".beanmanager]",
"jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO.HandleDelegate is missing [jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO]",
"jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO.InstanceName is missing [jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO]",
"jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO.InAppClientContainer is missing [jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO]",
"jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO.Validator is missing [jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO]",
"jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO.ORB is missing [jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO]",
"jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO.ValidatorFactory is missing [jboss.naming.context.java.comp.EntitiesProject.EntitiesProject.MitarbeiterDAO]"
]
这是我的SessionBean,我尝试注入EntityManager:
@Stateless
public class MitarbeiterDAO implements MitarbeiterDAORemote {
@PersistenceContext
private EntityManager em;
public int writeMitarbeiterToDB(Mitarbeiter m)
{
em.persist(m);
return m.getId();
}
}
我已经指定了以下文件,我将其放入“项目名称”/ejbModule/META-INF。persistence.xml
<persistence-unit name="mitarbeiter">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/MySqlDS</jta-data-source>
<properties>
<property-name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
</persistence-unit>
类似问题及其解决方案
- 找不到持久性单元建议包含持久性.xml
- 注入实体管理器在Wildfly / Jboss指出,我的持久性.xml可能属于另一个目录。我尝试了该目录,但仍然收到相同的错误消息。
-
无法从持久性中找到持久性单元.xml虽然这不是完全相同的问题,但解决方案是为持久性添加一个.xml,但这对我也不起作用。
<provider>
更新(见评论):
- 我试图使用而不是仅仅 - 上面显示的会话豆是我尝试注入的唯一地方@EntityManager(unitName="mitarbeiter")
@EntityManager
EntityManager
更新2(见答案的评论):
-
persistence.xml
在目录中Project/ejbModule/META-INF/
- 此目录包含在构建路径中
- 不知何故,当同一目录中的其他文件(到)时,它没有得到部署。如果我手动复制并粘贴它,它可以工作。为什么?
jar/META-INF/
任何帮助和提示都非常感谢。