1

私は2つの耳を持っています。最初の EAR には、インターフェース (EAR_INTERFACE.ear) を持つすべての jar が含まれています。これらのインターフェイスはリモートとしてマークされます。

2 番目の ear には ejbs(EAR_EJB) が含まれます。これらの ejb は、最初の ear から @remote インターフェースを実装します。EJB はステートレスで、mappedName を持っています。ejb への参照を取得するために、2 番目の EAR で ejb の MappedName を使用して jndi ルックアップを実行します。

ここで問題に直面しています。リモート EJB への参照を取得できません。インターフェイスと ejbs が同じ EAR にある場合、ルックアップは成功しますが、異なる EAR 間では失敗します。

私はグラスフィッシュ サーバー v2.1、ejb 3.0 を使用しています。

この問題を検索したところ、親子 EAR についてわかりました。これで私の問題は解決しますか。はいの場合、これを実装する方法。EAR の application.xml で何か言及する必要がありますか。

問題を解決するための最良のオプションを提案してください。

4

2 に答える 2

0

GlassFish 2.1に問題があるようです

インターフェイスが ejb と同じモジュールにない場合、ルックアップは失敗します。インターフェイスはクラスローダによってロードされないため、スタブは生成されません。

私の ejb jar は耳にあり、インターフェイスは別の jar にありました。この問題の回避策を見つけた方法。ear をデプロイする前に、インターフェイス jar を domain/domain1/lib/ext に保持し、glassfish を再起動します。ejb を含む ear をデプロイします。デプロイが正常に完了したら、インターフェース jar を application/j2ee-apps/ にコピーし、glassfish を再起動します。次に、ルックアップを実行しようとすると、ルックアップが成功します。

誰かが同様の問題に直面した場合、またはより良い回避策がある場合は、返信してください。

ありがとう

于 2013-10-12T19:35:35.030 に答える