2016-10-29 11 views
0

私はEARを使って階層化されたWebプロキシを作成しようとしています。 DataAccessをBusinessLogicが呼び出すことのみを許可するために、DataAccessからエンティティを分割しました。EARで他のjarファイルからエンティティを参照する

私は実際にこの例外を取得しています:

オブジェクト:[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>とjarファイルを参照します。

<?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 Developingにとって非常に新しく、これは私の神経に繋がっています。

私もpersistence.xmlのの[デザイン]タブで、この警告を取得しています:私は命令jar-filepersistence.xmlを保持するファイルから任意のパスを解釈することを信じて

enter image description here

+0

[this](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

...だから、あなたのconfigurationは、エンティティJARがEARファイルの兄弟であることを指定します。あなたの問題のため

最高(かつ簡単な)ソリューションは、あなたのI2TradingEntities.jarのMETA-INFフォルダに与えられたpersistence.xmlを入れて、そこから<jar-file>指示を削除することです...これはと呼ばれるPersistenceContextを作成するために、アプリケーションサーバーを指示します"I2TradingDataAccessPU"とそのJARに含まれる@Entity Classを検出する。

関連する問題