【问题标题】:Create a stateful session bean from a stateless bean从无状态 bean 创建有状态会话 bean
【发布时间】:2012-04-29 15:07:48
【问题描述】:

上下文如下:

客户端应用程序使用无状态会话 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; 
  }

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

【问题讨论】:

标签: ejb-3.0 session-bean


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多