0

私はJavaEEEJBの概念全体にかなり慣れていません。私はEJBの調査を行いましたが、まだ私の質問に対する解決策を見つけていません。

ケースシナリオ:

EAR1にリモートEJB1があり、EAR2にリモートEJB2があり、EJB 2にはサードパーティライブラリ(XXX.jar)への参照があります。EJB1のメソッドは、そのBeanインターフェースを介してEJB2のメソッドを呼び出し、さらに処理するためにサードパーティライブラリのメソッドに入力を送信します。結果は、EJB1リモートメソッドを介して逆方向に進むことにより、EJB1にフィードバックされます。

私の質問は、EJB2のリモートインターフェイスを含むクラスライブラリ(EJB2.jar)をEJB2プロジェクトのクラスパスに追加するときです。EJB1プロジェクトには、EJB2.jarにあるため、サードパーティのjarも含まれます。どうすればこれを回避できますか?サードパーティのjarは、EJB2プロジェクトのクラスパスにのみ追加する必要があります。

4

1 に答える 1

0

すべてをどのようにパッケージ化したかはわかりませんが、サードパーティのライブラリ/クラスを EJB 2 クライアント jar と一緒にパッケージ化するべきではありません。だから私はあなたが持っていると仮定する小さな情報から:

EAR 1
|_lib
| | |_EJB2Client.jar
| |
|_EJB1.jar

EAR 2
|_lib
| | |_Thirdparty.jar
| | |_EJB1Client.jar
| |
|_EJB2.jar

したがって、EAR1/EJB1 がサードパーティの jar を参照するという問題があるとは思いません。あなたの質問を正しく理解していれば。怪しげに聞こえるのは、おそらくすべてをパッケージ化する方法です。リモート EJB が必要な場合は、すべてのクライアント クラスを EJB-Client jar に入れる必要があります。また、同じ JVM で実行している場合は、リモート EJB を使用する必要がないことに注意してください。

于 2013-02-15T03:09:36.407 に答える