【发布时间】:2015-10-08 07:07:36
【问题描述】:
我有 read @Stateful bean (SFSB) 永远不应注入 @Stateless bean (SLSB)。但是实现以下目标的正确方法是什么?
@Stateless
public class FirstEJB
{
@EJB
private SecondEJB second;
public void businessMethod()
{
second.businessMethod1();
second.businessMethod2();
}
}
在second.businessMethod1() 和second.businessMethod2() 之间应该保留一些状态,所以SecondEJB 不能是无状态的。也没有简单的方法将businessMethod1() 和businessMethod2() 方法合并为一个,因为SecondEJB 可以有两个以上的业务方法,并且可以以不同的组合方式调用它们。
实际上我已经尝试使SecondEJB 有状态并且它似乎可以工作,但它会导致内存泄漏。没有标有@Remove 注释的SecondEJB 方法,但是我尝试了@StatefulTimeout 却没有运气:创建了很多SecondEJB 实例但没有删除。有人能解释一下为什么会泄漏吗?
【问题讨论】:
标签: java jakarta-ee ejb stateful-session-bean