首页 文章

JEE6战争包装成几个模块

提问于
浏览
4

我想将WAR应用程序的一部分拆分为不同的JAR组件 . 每个JAR组件都包含JPA-Entities,EJB和JSF-Composite-Components .

示例:将用户管理(XHTML,EJB,JPA-Entities)提取到自己的jar中 .

一开始,只要我不必使用entityManager,一切看起来都很好 .

问题:在JAR文件的EJB中,永远不会注入entityManager .

我正在使用@PersistenceContext注释进行注入 .

我在所有META-INF文件夹中都有一个beans.xml,并且正确注入了所有内容(例外的entityManager) . 如果我将persistence.xml放在所有JAR文件中或仅放在WAR文件中,则无关紧要 .

有没有人有胶水如何做到这一点?

我在哪里放置不同的配置文件(beans.xml,persistence.xml)?

我需要一个ejb-jar.xml文件吗?

这有可能吗?

技术 - 堆栈:JBoss 6.1 / PrimeFaces 3.2 / Maven / EJB 3.1 / Hibernate / JTA / CDI

1 回答

  • 0

    您需要在包含实体的每个jar中使用persistence.xml文件 . 每个这样的持久性xml都应该定义一个不同的持久性单元 .

    如果您希望一个持久性单元在不同的持久性单元中引用实体定义,那么您需要将其作为jar文件条目包含在持久性单元定义中(请参阅下面的示例) . 这对我们来说非常类似于JBoss 5.1(然后是7)/ EJB3 / Hibernate,Maven,...

    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd“version =”1.0“>

    <persistence-unit name="PersistenceUnitA">
        <jar-file>JarContainingOtherPersistenceUnit</jar-file>
        <jta-data-source>java:/jboss-mysql-ds</jta-data-source>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
        </properties>
    </persistence-unit>
    

相关问题