2016-10-29 66 views
0

我正在嘗試使用EAR創建分層的網絡工程。我將DataAccess中的實體分開,以便只允許BusinessLogic調用DataAccess。從EAR中的其他罐子引用實體

實際上,我得到這個異常:

對象:[email protected]不是已知的實體類型。

我在這裏發現我需要在EAR中創建一個persistence.xml,但我無法真正理解如何。

Sharing a persistence unit across components in a .ear file

我試圖把XML文件中的配置文件:

enter image description hereenter image description here

並引用與在persistence.xml <jar-files>罐子;

<?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="I2TradingDataAccessPU" transaction-type="JTA"> 
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
     <jta-data-source>jdbc/I2DataSource</jta-data-source> 
       <jar-file>../I2TradingEntities.jar</jar-file> 
       <jar-file>../../I2TradingEntities.jar</jar-file> 
     <shared-cache-mode>NONE</shared-cache-mode> 
     <properties> 
      <property name="eclipselink.target-server" value="None"/> 
      <!-- <property name="eclipselink.logging.level" value="ALL"/> --> 
      <property name="eclipselink.logging.level" value="WARNING"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

沒有成功。任何想法爲什麼?我對Web開發很陌生,這讓我感到很緊張。

我也收到此警告在persistence.xml的設計標籤:

enter image description here

+0

看看[這裏](http://stackoverflow.com/questions/40016269/entity-unknown-in-ear-with-persistence-unit-in-another-jar/40030861#40030861)的問題,它的答案;這基本上是同一個問題。 – ujulu

+0

你好。我正在與Netbeans合作,我只是不明白他們何時顯示文件夾結構。我的文件夾結構完全不同。你能告訴我在什麼地方放置persistence.xml嗎? –

+0

我也不使用Netbeans,我也不能告訴你它是如何組織項目的;但是我看到一個包含'I2Trading.ear'的文件夾'dist'。如果你擴大耳朵,你可以看到目錄結構;如果你能告訴我,我可以試着告訴你你必須把persistence.xml文件放在哪裏。 – ujulu

回答

0

我相信指令jar-file從持有persistence.xml文件解釋任何路徑......所以,你的配置指定實體JAR是您的EAR文件的兄弟。

有關問題的最佳(容易)解決方案是把給定的persistence.xmlI2TradingEntities.jar的META-INF文件夾,並從中取出<jar-file>說明...這將指示應用服務器創建一個名爲PersistenceContext 「I2TradingDataAccessPU」並檢測包含在該JAR中的任何@Entity類。