0

ユーザーがログインすると、メイン(またはランディング)ページが4つのステートフルセッションBeanを呼び出すweam Webアプリケーションに取り組んでいます。したがって、ユーザーがログインすると、ステートフル セッション Bean の少なくとも 4 つのスレッドが作成されます。このページには、ログアウト ボタンもあります。xhtml のログアウト コンポーネントは、ログアウト メソッドを持つ POJO を呼び出します。

logout メソッドでは、次のステートメントが実行されます。

Session.instance().invalidate();

問題は、ユーザーのログイン時に作成されるステートフル セッション Bean の 4 つのスレッド/インスタンスが破棄されるかどうかです。

このアプリケーションを JBOSS 4.2.3、Seam 2.2.1 Final で実行しています。認証には JOSSO を使用しています。

4

1 に答える 1

0

はい、それらはすべて同じセッションの一部です。実際には、個別のセッションではなく、セッションスコープの Bean を作成しています。

とはいえ、チェックするのは簡単です。各セッション Bean にメソッドを作成し、@Destroy でアノテーションを付けます。アノテーションが付けられた Bean が破棄されると、このメソッドが呼び出されます。

@Destroy
public void callMeWhenIDie(){
log.debug("I'm melting, I'm melting" + this.someDefiningCharacteristic);
}
于 2012-08-08T04:14:34.407 に答える