2012-04-30 2 views
1

環境EJBは、オプションパッケージを見つけるため、持続性ユニット、それが

  • のWebLogic 11gに(結果的には、Java EE 5とEJB 3.0)
  • アンEJBは、すべての永続エンティティを保持しているJARを含まを中にすることはできません。それは正常に働いた(EJBを使用するWebアプリケーションを持っていて、期待どおりに動作する)。エンティティを別のレイヤーに分割することにしました。これを実行するために別のモジュールを作成し、オプションパッケージとして展開しました。だから、私は2つのJARファイルを持っていますが、1つのアプリケーションの一部としてではなく別々にデプロイします。永続性JARおよびEJB JAR

問題

EJBの配備中、私は(オプションパッケージが見つからなかったことを私に伝えます)、次のエラーを取得:

EJBを展開することができません

:BLayerからStocksBean -1.0.0-SNAPSHOT.jar:スコープ
BLayer-1.0.0-SNAPSHOT.jarで使用可能な永続ユニット「internalAppsPU」はありません。利用可能な永続性単位:[]

詳細永続化モジュールのJARのMETA-INFフォルダ内の

マニフェスト持続モジュールのJARの

Manifest-Version: 1.0 
Archiver-Version: Plexus Archiver 
Created-By: Apache Maven 
Built-By: bm03043 
Build-Jdk: 1.6.0_18 
Extension-Name: com.amir.persistence 
Implementation-Version: 1.0.0 
Specification-Version: 1.6 

persistence.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<persistence 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_1_0.xsd" 
    version="1.0"> 
    <persistence-unit name="internalAppsPU" transaction-type="JTA"> 
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
     <jta-data-source>InternalAppsDS</jta-data-source> 
     <class>com.xx.persistence.Stock</class> 
     <properties> 
      <property name="eclipselink.logging.level" value="FINE" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

EJBのコード

EJBのJAR

Manifest-Version: 1.0 
Archiver-Version: Plexus Archiver 
Created-By: Apache Maven 
Built-By: bm03043 
Build-Jdk: 1.6.0_18 
Extension-List: PLayer 
PLayer-Extension-Name: PersistenceLayer 
PLayer-Implementation-Version: 1.0.0-SNAPSHOT 
PLayer-Specification-Version: 1.6 

package com.xx.bll; 

// bunch of imports // 

@Stateless(name="StocksBean", mappedName="Internal-BLayer-StocksBean") 
public class StocksBean implements Stocks { 

    @PersistenceContext(unitName = "internalAppsPU") 
    private EntityManager em; 

    // SNIP // 
} 

マニフェストには、次の点に注意してください:

  • InternalAppsDSデータソースがWebLogicで以前に設定されています。
  • ある時点で、エクステンションリストの名前は、オプションパッケージとしてデプロイされたJARファイルの名前と一致しなければならないという印象を受けました。しかし、私がもっと読むと、私はそれが正しいと分かりませんでした。
+0

拡張名にcom.amir.persistenceを使用してみましたか? –

+0

はい。それはそれだった。しばらく前にこれを修正して、今日あなたのコメントを見つけました。誰かが実際に反応したという通知はありませんでした。ありがとう。それは私にしばらく時間を節約してくれました。 –

答えて

0

答えは、ライブラリで使用されているのと同じ拡張名を使用することです。

関連する問題