部署WildFly期间持久性单元名称问题

时间:2016-02-17 21:10:56

标签: java hibernate jpa java-ee wildfly

我的持久性模块存在一些问题。

得到错误,如 “意外的问题收集统计信息:java.lang.IllegalStateException:JBAS011477:持久性单位'EAR_FileName.ear / EJB_Module_Persistence.jar#MyPersistenceUnit'不可用”

我的persistence.xml文件位于下面突出显示的位置。如果我错了请纠正我 - 根据包装结构持久性单位名称以 EAR文件名开头然后我的持久性模块名称然后#unit name ,这是绝对正确的。我正在使用PersistenceContext在另一个ejb中注入我的持久性单元。

@PersistenceContext(unitName="MyPersistenceUnit")
private EntityManager em;

有谁能告诉我我在这里做错了什么。我将不胜感激您提供的任何输入/帮助。

这是我项目的模块结构

EAR_FileName.ear
      |
      |---EJB_Module1.jar
      |
      |---EJB_Module_Persistence.jar
                    |
                    |---META-INF
                          |
                          |---persistence.xml

这是我的persistence.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
   xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
        http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="MyPersistenceUnit" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/MyTransactionDS</jta-data-source>
        <class>all class</class>
        <properties>
            <property name="hibernate.show_sql" value="false"/>
                <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.use_sql_comments" value="true"/>
            <property name="hibernate.cache.use_second_level_cache" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

P.S。使用WildFly 8.1作为应用程序服务器。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

看起来Wildfly-Tracker已经出现了这个问题的缺陷:

WFLY-4908: Redeploy dependent ear fails with duplicate resource error for persistence unit

Jboss-Forum还有一篇文章:

JBoss-Dev: Redeploy dependent ear fails with duplicate resource error for persistence unit

根据缺陷描述,使用Wildfly 10.1.0.CR1解决了该问题。