2012-04-29 10 views
1

コンテキストは次のとおりです。ステートレスBeanからステートフルセッションBeanを作成する

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

私は、次のコードを持っている:

@Resource 
private SessionContext context; 
... 

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

ルックアップは常に失敗。

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

はあなたがStatefulBeanRemoteへのEJB参照を定義している:私は

+0

類似したものはhttp://stackoverflow.com/q/10355765/366964を参照してください。 –

答えて

0

あなたが実行している検索が同じである...私が間違っているのかわかりませんか?おそらくそれだけで必要なものは次のとおりです。

@EJB(name="StatefulBeanRemote", beanInterface=StatefulBeanRemote.class) 
public class MyClass { 
    @Resource 
    private SessionContext context; 
    ... 
}