从无状态 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 引用? 也许这就是您所需要的:

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

相关内容

  • 没有找到相关文章

最新更新