【发布时间】:2014-11-20 17:16:27
【问题描述】:
使用有状态 EJB 时,如果客户端没有活动会话,服务器如何知道 EJB 与谁关联?我以前使用过无状态 EJB,但现在正在尝试学习如何使用有状态 EJB。我正在考虑将我的购物车实现为有状态的 EJB,而不是在用户会话中添加一个 POJO 购物车作为属性。但是由于有状态的 EJB 没有显式地作为属性添加到 HttpSession 中,那么服务器如何将客户端与有状态的 EJB 关联起来呢?
【问题讨论】:
-
服务器无法将客户端与会话关联,除非它已被添加(或者您正在使用
@Inject并且有状态会话 bean 是@SessionScoped)。是什么给你的印象? -
我认为对于有状态 EJB,当我请求在有状态 EJB 中运行方法时,同一个 bean 正在为单个客户端提供服务,所以我不确定bean 和那 1 个客户。
-
有状态会话 bean 在客户端执行查找时创建。从查找返回的代理包含对特定 bean 实例的某种引用/ID,因此当客户端对代理进行后续调用时,它会连接回特定的 bean 实例。
标签: java session jakarta-ee ejb