[解決済み] EJBにおけるlocal/remoteとno-interface viewとは何ですか?
質問
私は、EJBで異なるクライアントビューが必要な目的と理由を理解しようとしています。誰かが説明することを試みることができますか?
どのように解決するのですか?
リモートクライアントビュー
EJBとそのクライアントが分散環境にある場合 - つまり、EJBとクライアントが別々のJava仮想マシンに存在する場合。例:WebSphere Application Server上でホストされるEJBと、Tomcatサーバー上でホストされるEJB APIを消費するServlet。
ローカルクライアントビュー
他のエンタプライズBeanやクライアントが単一のJVM内でBeanをアドレスするだけであることが保証されている場合のみ。例:EJBだけでなく、同じWebSphereサーバー上に展開されたServletも。
ノーインターフェイスビュー
ローカルクライアントビューとほぼ同じですが、異なる点があります。この場合、Beanクラスはクライアントビューインターフェースを実装する必要はありません。 no-interfaceビューは常にEJB参照を取得します - ローカルまたはリモートビューと同様に - インジェクションまたはJNDIルックアップによって; しかし、EJB参照のJavaタイプはローカルインターフェースのタイプではなく、ビーンクラスタイプになります。これは、Java EE6の一部として導入された利便性です。
ローカルクライアントビューとノーインターフェイスビューの違い
ノーインターフェイスビューの場合、クライアントとターゲットBeanは同じアプリケーション(EAR)にパッケージングされなければなりません。ローカルビューの場合、クライアントはエンタープライズアプリケーションとは別のアプリケーションでパッケージ化することができます。そのため、コンポーネントを細かく分類するという点では、より柔軟性があります。
ローカルクライアントビューとノーインターフェイスビューは、APIの使用シナリオによって使い分けることができます。ノーインターフェイスビューは、将来の仕様で柔軟な機能を受け取る可能性が非常に高いです。
理由
歴史的に見ても、EJBサービスを使用したいクライアントは、(特定の初期コンテキストで)コンテナ上のBeanを"look up"することになっていました。それは、すべての呼び出しがコンテナによって提供される特別なEJB参照(プロキシ)を通して行われるからである。これによって,コンテナは,プーリング,コンテナ管理トランザクションなどのすべての付加的なBeanサービスを提供することができる。ですから、クライアントは明示的にEJBを
new
演算子で明示的にインスタンス化することはできません。クライアントビューは、クライアントがアクセスできる特定のインターフェイスを介して提供されます。サーバーサイドでのプロキシ実現は、これらのインターフェイスに基づいて行われます。上記のように、様々な展開シナリオに対応するために、異なるクライアントビューが定義されています。
関連
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
プロジェクトの依存関係を解決できない。
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み】Apache Camelとは一体何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
NullPointerException - java.lang.
-
Javaでよくある構文エラー
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
Uncaught ReferenceError: は定義されていません。
-
強制型変換について
-
org.xml.sax.SAXParseExceptionのエラー解決方法
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。