2013-02-18 1 views
4

내 WAR 응용 프로그램의 일부를 다른 JAR 구성 요소로 분할하려고합니다. 모든 JAR 구성 요소에는 JPA-Entities, EJB & JSF- 복합 구성 요소가 포함됩니다.여러 모듈에 JEE6 war 패킹

예 : 사용자 관리 (XHTML, EJB, JPA-Entities)를 자체 jar로 추출합니다.

먼저 엔티티 관리자를 사용할 필요가없는 한 모든 것이 제대로 작동합니다.

문제점 : JAR 파일의 EJB에서 entityManager는 절대로 삽입되지 않습니다.

저는 주입을 위해 @PersistenceContext 주석을 사용하고 있습니다.

모든 META-INF 폴더에 beans.xml이 있고 모든 항목 (제외 된 entityManager)이 올바르게 삽입되었습니다. persistence.xml을 모든 JAR 파일 또는 WAR 파일에만 배치해도 상관 없습니다.

아무에게도이 작업을 수행 할 수있는 방법이 있습니까?

여기서 다른 구성 파일 (beans.xml, persistence.xml)을 배치해야합니까?

ejb-jar.xml 파일이 필요합니까?

전혀 가능합니까?

기술 스택 : 보스 6.1/PrimeFaces 3.2/메이븐/EJB 3.1/최대 절전 모드/JTA/CDI

답변

0

당신은 엔티티를 포함하는 모든 단지에있는 persistence.xml 파일이 필요합니다. 이러한 모든 지속성 xml은 다른 지속성 단위를 정의해야합니다.

하나의 영속 단위가 다른 영속 단위에 정의 된 엔티티를 참조하도록하려면 지속성 단위 정의에 jar 파일 항목으로 포함해야합니다 (아래 예제 참조). 매우 유사한 스택 JBoss 5.1 (및 7)/EJB3/Hibernate, Maven, ...에 대해 작동합니다.

http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd " 버전 ="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>