1

コンテキストは次のとおりです。

クライアント アプリケーションは、ステートレス セッション Bean を使用して、EJB サーバー アプリケーションにログインします。ログインが成功した場合、クライアントは、個人データに対していくつかのトランザクションを実行するために、ステートフル セッション Bean を取得する必要があります。ただし、クライアントがこのセッション Bean を手動で呼び出して認証なしでトランザクションを実行できないように、ログイン メソッドがこのステートフル セッション Bean の新しいインスタンスを返すようにする必要があります。出来ますか ?

私のステートレス Bean には、次のコードがあります。

@Resource 
private SessionContext context;
...

public StatefulBeanRemote login(username, password) {
  if (ok) {
    StatefulBeanRemote bean = (StatefulBeanRemote) context.lookup("StatefulBeanRemote");
    return bean; 
  }

検索は常に失敗します。何が間違っているのかわかりません...

4

1 に答える 1

0

実行しているルックアップは次と同じです。

new InitialContext().lookup("java:comp/env/StatefulBeanRemote");

StatefulBeanRemote への EJB 参照を定義しましたか? おそらくそれで十分です:

@EJB(name="StatefulBeanRemote", beanInterface=StatefulBeanRemote.class)
public class MyClass {
    @Resource
    private SessionContext context;
    ...
}
于 2012-04-30T15:09:24.880 に答える