在JBoss/WildFly中注入EntityManager

4

我正在学习JPA、EJB和JBoss/WildFly相关技术。

我需要将EntityManager注入到我的应用程序中。我尝试按照以下方式进行:

@Stateless
@LocalBean
public class ProductsService implements IProductsService {

    @PersistenceContext(unitName = "myUnit")
    EntityManager entityManager;

//....
}

我有一个 persistence.xml 文件在我的 .war 存档中的 META-INF 目录中:

<?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个回答

6

persistence.xml文件总是位于{持久性单元的根}/META-INF/目录。在war文件中,您必须将persistence.xml放置在WEB-INF/classes/META-INF中。

例如:

WEB-INF/classes/META-INF/persistence.xml
WEB-INF/web.xml

查看更多:持久化单元


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接