我有一个 JSF 应用程序,它在托管 bean 中从远程有状态 session bean (EJB 3.0) 调用业务逻辑。
现在有一个 HttpSessionListener 调用该有状态 session bean 上的 @Remove 注释方法,因此一旦 HttpSession 被销毁,容器就可以删除有状态 session bean。
现在我想知道如果我不调用带@Remove 注释的方法并且 HttpSession 被销毁会发生什么。有状态 session bean 的客户端此时不存在记录器。容器会删除有状态 session bean 吗?或者它会永远存在导致某种泄漏(内存/磁盘)?
最佳答案
是的,容器将在超时时删除未使用的有状态 session bean。无论如何,当不再需要 bean 的状态时调用 @Remove 注释方法是要遵循的模式。
有状态 session bean 的删除超时可以在您的应用程序服务器的设置中设置。
关于java - 当没有调用 @Remove 注释方法时,有状态 session bean 会导致泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12260347/