0

私は EJB3 の初心者です。EJB Bean の実装がリモートまたはローカルにあることをクライアントがどのように認識しているかを知りたいです。クライアント クラスで InitialContext を使用して Bean にアクセスするとき、その Bean がローカルかリモートかを知りたいですか? ばかげた質問をしている場合は申し訳ありませんか?

4

3 に答える 3

0

EJB の作成時に使用できるインターフェースは 2 つあります。1 つはリモートで、もう 1 つはローカルです。リモートは、その名前が示すように、関数をリモートで呼び出し (または起動) して結果を取得したいリモート クライアント用です。一方、Local はローカル環境で使用するように設計されています。たとえば、システム内の別の EJB または POJO がそれを使用している場合などです。使用方法は、EJB をそのリモート インターフェースを使用して使用する場合と同じです。ただし、サーバーがそれを処理するための頭痛の種は少なくなります。これが、リモート インターフェイスの代わりにローカル インターフェイスを使用する唯一の理由です。ローカル インターフェイスは JVM に対してローカルではなく、他の POJO クラスのようにローカルです。

ローカル クライアント ビューにアクセスできません:

EJB または Web コンポーネントが別のアプリケーションの EAR パッケージにパッケージ化されている場合。Web コンポーネントが Web コンテナーにデプロイされ、EJB が EJB コンテナーにデプロイされ、これらのコンテナーが分離されている場合 (それらが同じマシンで実行されている場合でも)

ローカルまたはリモート インターフェイスを検討する際の主な要因は次のとおりです。

クライアント: クライアントが Web コンポーネントまたは別の Bean でない場合は、ローカル Bean を使用しないでください & Beans: Bean は疎結合ですか? その場合は、ローカル スケーラビリティを使用することをお勧めします。スケーラビリティには常にリモートの方が適しています。エンティティ Bean にはローカル インターフェイスをお勧めします。これは、パフォーマンスの問題を解決するのに役立ちます。

続きを読む:

http://onjava.com/pub/a/onjava/2004/11/03/localremote.html

http://www.conceptgo.com/gsejb/ov06.html

于 2013-07-01T07:14:09.807 に答える
0

インターフェースの @Remote を使用すると、リモートインターフェースとして使用できます

@Remote
public interface Cart {

}

次に、このインターフェースを EJB Bean に実装します。

@Stateful
public class CartBean implements Cart {

}

同様に @Local アノテーションを使用すると、Local インターフェースとして使用できます。

于 2013-07-01T07:17:40.503 に答える