2012-04-27 12 views
1

私は次のようにログインシナリオを処理したい:ステートレスBeanからステートフルなJava Beanを返すには?

  1. クライアントは、ステートレスJava Beanが(SLJB)に接続して、ログインしようとします。
  2. ログインに成功すると、SLJBはユーザーにステートフルJava Bean(SFJB)を返します。これにより、クライアントはアプリケーションの使用を継続できます。

私は現在のように第二段階やっている:

return new StatefulBean(some params); 

が、これはそれを行うための正しい方法ですか?例外が発生すると私には見えません。私のアプリケーションを実行すると、例外が発生しているように見えません。私のアプリケーションを実行しているときには、このメソッドに関連していると思います。

SFJBへの参照をSLJBからクライアントに返す正しい方法は何でしょうか?

答えて

3

まず第一に、これは完全に間違っている:

new StatefulBean(some params) 

EJBコンテナは、豆のインスタンスを作成し、破棄を担当し、それらを手動で作成することはありません。

あなたのシナリオでは、私はフローを逆にします。クライアントはステートフルBeanに接続します。ステートフルBeanはヘルパーとしてステートレスセッションBeanに接続できます。 Beanを渡す必要はなく、クライアントは常に同じBeanを使用します。

+0

これは私の要件がどのように公式化されているかという問題です。指定されたワークフローを使用する方法がありますか? – adrianp

+0

@adrianpあなたの要件は、単にそのように公式化されるべきではないでしょうか? –

1

Tomasz氏が言及しているように、おそらくあなたの流れを再考する必要があります。

つまり、起動時に各Beanに割り当てられた移植可能なJNDI名を使用して、JNDIルックアップを実行して新しいステートフルインスタンスを保持することができます。

関連する問題