InitialContext.lookup(ejbMappedName)返回一个新实例或一个旧的相同实例

时间:2013-03-04 14:55:56

标签: ejb stateful initial-context

对于有状态的EJB,如果我使用InitialContext.lookup(itsMappedName)获取它的引用,对于(InitialContext.lookup(itsMappedName))的每次调用,它将返回一个新的有状态EJB或相同的有状态EJB吗?

1 个答案:

答案 0 :(得分:0)

public class SFEJB implements EJBRemote{
  //.....
}

public class Class1{
  void method1{
    InitialContext ctx = new InitialContext(env);            
    EJBRemote testEJB= (EJBRemote)ctx.lookup(mappedName#fullclassname);
    //.....
  }
}

我发现它将为每个initialcontext.lookup(mappedName#fullclassname)返回一个新的有状态EJB(SFEJB)。
首先,我认为“有状态EJB”中的“有状态”意味着对于同一个Web客户端,我将为每次调用initialContext.lookup(mappedName#fullclassname)获得相同的有状态EJB,但现在我知道“有状态”只是对于testEJB,每个方法调用都会调用同一个SFEJB实例(所以在一个状态下) 那么testEJB是SFEJB的EJB客户端? (SFEJB记住testEJB)