4

私は 4 つのモジュールを持つエンタープライズ アプリケーション プロジェクトを持っています。WLS 10.3.4 にデプロイされます。私は、Eclipse用のOracle Webツールを使用した開発にEclipse Heliosを使用しています。私のマシンのローカル WLS は、開発モードとしてインストールされます。

プロジェクトの構造は次のようになります。

xxx_EAR
|-> xxx_JPA
|-> xxx_EJB
|-> xxx_EJBClient
|-> xxx_WEB

モジュール全体で使用される共通の jar は、xxx_EAR/APP-INF/lib にあります。

xxx_JPA の内部には、3 つの永続ユニットを持つ persistence.xml があり、xxx_EJB には、@PersistentContext を使用してそれらを参照するクラス、Bean があります。

EJB version is 3.0
JPA is 1.0 (Eclipselink 1.1.x)

すべてが私のコンピューターでローカルに正常に動作します。テスト WLS に EAR ファイルをデプロイしようとすると、次の例外が発生します。

Unable to deploy EJB: XxxFacadeImpl from xxx_EJB.jar:

No persistence unit named 'xxx_EJB' is available in scope xxx_EJB.jar. Available persistence units: []
    at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:469)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:518)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)

...

私が見るように、サーバー間の唯一の違いはインストールモードであり、テストWLSはプロダクションモードとしてインストールされます。

ヒントはありますか?

前もって感謝します!!

4

2 に答える 2

0

同じエラーが発生しましたが、逆です。EAR をプロダクションにデプロイしたり、WebLogic コンソールからデプロイしたりすることはできますが、Eclipse Weblogic プラグインを介してローカルにデプロイすることはできません。私にとってうまくいったのは、EJB プロジェクトのビルド パスにある javax.persistence_xxx.jar のバージョンを変更することでした。

私の場合、javax.persistence_1.xxx から javax.persistence_2.xxx に変更します。

これが誰かに役立つことを願っています。この問題の解決策を探す際に、以下のコーダランスのリンクも役に立ちました。

http://www.coderanch.com/t/578851/EJB-JEE/java/persistence-unit-named-scope-BL

于 2015-04-17T15:00:46.693 に答える
0

サーバーのバージョンは同じですか?JPA jar のすべてを EJB jar に入れるとどうなりますか? その場合は機能しますか?

于 2012-01-10T13:41:34.097 に答える