【发布时间】:2013-02-18 16:59:47
【问题描述】:
对于一个有状态的 EJB,如果我使用 InitialContext.lookup(itsMappedName) 获取它的引用,对于 (InitialContext.lookup(itsMappedName)) 的每次调用,它将返回一个新的有状态 EJB 还是相同的有状态 EJB?
【问题讨论】:
标签: ejb stateful initial-context
对于一个有状态的 EJB,如果我使用 InitialContext.lookup(itsMappedName) 获取它的引用,对于 (InitialContext.lookup(itsMappedName)) 的每次调用,它将返回一个新的有状态 EJB 还是相同的有状态 EJB?
【问题讨论】:
标签: ejb stateful initial-context
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 Client 吗? (SFEJB 记得 testEJB)
【讨论】: