在 JBoss/WildFly 中注入 EntityManager
Posted
技术标签:
【中文标题】在 JBoss/WildFly 中注入 EntityManager【英文标题】:Injecting EntityManager in JBoss/WildFly 【发布时间】:2015-04-17 09:54:00 【问题描述】:我正在学习 JPA、EJB 和 JBoss/WildFly。
我需要将EntityManager
注入我的应用程序。我正在尝试通过以下方式做到这一点:
@Stateless
@LocalBean
public class ProductsService implements IProductsService
@PersistenceContext(unitName = "myUnit")
EntityManager entityManager;
//....
我的.war
存档中的META-INF
目录中有persistence.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="myUnit">
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
JNDI 数据源 (java:jboss/datasources/ExampleDS
) 是全新 WildFly 安装中提供的默认数据源。
当我将应用程序部署到 WildFly 时,我收到以下错误:
JBAS011440: Can't find a persistence unit named myUnit in deployment "my-web-app.war".
我做错了什么?
【问题讨论】:
【参考方案1】:persistence.xml
始终驻留在root-of-persistence-unit/META-INF/ directory
中。在战争文件中,您必须将persistence.xml
放在WEB-INF/classes/META-INF
中。
例如:
WEB-INF/classes/META-INF/persistence.xml
WEB-INF/web.xml
查看更多:Persistence Units
【讨论】:
以上是关于在 JBoss/WildFly 中注入 EntityManager的主要内容,如果未能解决你的问题,请参考以下文章
JBoss Wildfly 在 jboss-cli 命令行模式下显示属性值
Java EE 远程客户的访问EJB实现实例(Jboss wildfly)
JBoss/Wildfly - 安全高效的日志过滤 - 多个处理程序记录到同一个文件