2013-02-18 74 views
4

我想將我的WAR應用程序的部分拆分成不同的JAR組件。 每個JAR組件都包含JPA實體,EJB & JSF-Composite-Components。JEE6戰爭打包成幾個模塊

實施例:提取用戶管理(XHTMLs,EJB的,JPA-實體)到自己的罐子。

起初一切,只要我沒有使用一個EntityManager看起來做工精細。

問題: 在JAR檔案實體管理的EJB將永遠不會被注入。

我使用的注射用@PersistenceContext註解。

我在所有META-INF文件夾中的beans.xml和一切(EntityManager的除外)正確注入。如果我將persistence.xml放置在所有JAR文件中或僅放置在WAR文件中,則無關緊要。

有沒有人有膠水如何做到這一點?

我在哪裏必須把不同的配置文件(beans.xml中,persistence.xml中)?

我需要一個ejb-jar.xml文件嗎?

這可能嗎?

技術-堆棧: JBoss的6.1/3.2 PrimeFaces/Maven的/ EJB 3.1 /休眠/ JTA/CDI

回答

0

你需要在包含實體每個罐子persistence.xml文件。 每個這樣的持久性xml應該定義一個不同的持久性單元。

如果您希望一個持久性單元引用實體在不同的持久性單元中定義,那麼您需要將其作爲jar文件條目包含在持久性單元定義中(請參見下面的示例)。 這對於我們來說是一個非常類似的堆棧JBoss 5.1(然後7)/ EJB3 /休眠,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>