15

主にコンポーネント指向設計と J2EE に焦点を当てた試験に向けて過去の試験問題を修正していると、次の質問に出くわしました。

シナリオ 3: 「交換要求」の予備調査では、2 つの EJB が適切なソリューションを提供することが示唆されています。処理を制御する EnterExchangeRequest と呼ばれるセッション Bean と、要求の永続的なプロパティを表す ExchangeRequest と呼ばれるエンティティ Bean です。次のインターフェースの役割について話し合います。

  • リモート
  • ローカルホーム
  • ローカル

上記の EJB のサービスへのアクセスを提供する方法。

HomeインターフェースがどのようにRemote図に収まるかを説明しようとすることができました。Homeまた、講師が、LocalHome、および で置き換えることができると言っているのを聞いたことがありますRemoteLocal(なぜですか?)、なぜ 4 つすべての役割を同時に議論するように私に求めているのですか?


EJB コンテナー(アプリケーション・サーバー)は、インターフェースがHomeまたはコンテナーは、Bean を複数のマシンに分散できないことを認識しているため、1 つのマシンでのみ「有効」に保ちますか?RemoteLocalHomeLocal


私はこのエンタープライズ Java ジャングルで完全に迷子になっています。BeanOverflow が発生しています。私の仮定のどれが間違っているか教えてください。私の誤解と失敗を指摘してください。

これらの EJB インターフェースに関して私を助けてくれるすべての人に感謝します。

PS 過去の試験問題の解答を求めているわけではないことに注意してください。これを尋ねた後、彼らがどうなるかについて何か考えがあるかどうかだけ興味があります.

4

2 に答える 2

7

HomeはRemote(コンストラクターのようなもの)の作成を担当し、LocalHomeとLocalは同じ関係にあります。

いずれの場合も、コンテナは、作成した実際のEJBクラスを参照するプロキシを提供します。

推測しなければならない場合、質問が探していたのは、セッションBeanにはリモートを使用し、エンティティBeanにはローカルを使用することでした。

とにかく、これらの概念はまだ存在する可能性がありますが、EJB3では物事がはるかに単純化されています。

編集:コメントに応じて、EJB3を使用すると、Beanクラス自体がリモートインターフェイスとホームインターフェイスを直接実装できます(セッションBeanの場合)。それらは単一のアノテーションでEJBになります。ステートフルBeanには、状態の問題に対処するためのアノテーションがさらにいくつかあります。エンティティBeanにはホームインターフェイスがなく、ローカルインターフェイスも必要ありません。Javaオブジェクトを直接操作できます。クエリに基づいて適切なエンティティBeanを取得するEntityManagerがあり、そのEntityManagerはアノテーションを介して注入されます。

そのようなものは、段落にまとめられています。このようなものについては、Web上に優れたチュートリアルがありますが、EJBは一般に、問題に対処しない限り理解するのが難しいクラスの問題を解決します。それらはそれを解決する唯一の方法ではありませんが、このタイプのプログラミングを扱わない限り、それについて読むだけでは実際にそれに関係するのに役立ちません。

于 2009-05-26T23:37:43.263 に答える
7

Yishay が指摘したように、Home/Remote と LocalHome/Local は結び付けられており、Home インターフェイスはコンストラクターとして機能します。

ローカル Bean は、それらが存在する JVM に関連付けられており、外部からアクセスすることはできません。リモート Bean は、他の JVM からアクセスできます。

私も同様のアプローチを使用します。常に耳を展開します。Beans for the ear 私は地元の豆を作り、他の耳が使うための豆は私がリモートで作ります。ただし、ローカル Bean が同じ JVM にデプロイされている限り、他の ear でローカル Bean を使用することは可能です。

于 2009-05-28T12:54:45.387 に答える