从无状态bean创建有状态会话bean

时间:2012-04-29 15:07:49

标签: ejb-3.0 session-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; 
  }

查找总是失败。我不知道我做错了什么......

1 个答案:

答案 0 :(得分:0)

您执行的查找与以下内容相同:

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

您是否定义了对StatefulBeanRemote的EJB引用?也许这就是你所需要的:

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