0

ejb で使用されているクライアントという言葉を読むたびに、彼らが何をクライアントと見なしているのか理解できません。

ejb の場合、クライアントの寿命は? jndiやインジェクションなど、Bean参照の取得方法によって異なりますか。

http セッションに合わせていますか?もしそうなら、これは jndi とどのように関連していますか?

参照の取得方法に応じて、クライアントの会話が ejb で開始および終了するのはいつですか?

java ee 7 コンテナーと se から呼び出されるかどうかによって異なりますか?

編集:もっと具体的にする必要があると思います。ステートフル セッション Bean は状態を維持しますが、その状態がどのようなコンテキストでどの程度維持されるかを示します。たとえば、参照を取得した場合、その参照によってのみ行われた呼び出し間で状態が維持されますか?

また、セッションの概念と、すべてのタイプの ejb で一意のクライアントと見なされるものは何ですか?

ありがとう :-)

4

2 に答える 2

1

これについては、EJB を使った作業から得た意見 (それほど深くはありませんが) をお伝えしたいと思います。また、他のユーザーからの建設的なフィードバックをお待ちしています。セッションには、ejb セッションと「その他」(クライアント) セッションの 2 種類があります。クライアントは、あなたが提供するリモートインターフェースを検索して使用するエンティティを意味し、おそらくローカルインターフェースでもあります。この場合、クライアントと ejb は同じ JVM 内で実行されています。

ejb セッションは、EJB コンテナーによって管理されるセッションを意味します。呼び出されるかどうかは問題ではありません。ステートフルな ejb が検索されて作成されると、セッションが開始されます。もちろん、これはサーバー側で発生します。ejb には、セッションの継続時間に注釈を付ける特定の方法があります。このセッションが期限切れになると、EJB のそのようなインスタンスに到達できなくなるため、クライアント側ではサーバー内の何かへの参照がなくなります。

一方、クライアントには、EJB セッションから独立した独自のセッションがあります (2 つのセッションを関連付ける必要がない場合)。EJB がクライアントのログインを管理しているとします。ejb タイムアウトが発生すると、クライアントはログに記録されなくなります。ただし、これはクライアント セッションがタイムアウトしたことを意味するわけではありません。セッションが長くなっている可能性があります。

プレゼンテーション層とロジック層を備えた 2 層アーキテクチャを持つことを考えてみてください。独自のセッション コンセプトを持つ jsf 経由のプレゼンテーションと、独自のセッション管理を持つ別のサーバー上の EJB 経由のロジック。

2 つのセッションを相互に関連付けたいと考えていますが、それらは同じではありません。ejb タイムアウト時に http/Servlete セッションを期限切れにすることはできますが、それらは 2 つの異なるコンテキストにあり、2 つの異なるものに関連しています。

于 2013-09-22T08:32:14.857 に答える