![](/img/trans.png)
[英]Stateful EJB with extended persistence context to handle user session
[英]Share a Stateful EJB for different user interfaces?
我有一个EJB问题。
考虑我们有一个有状态的bean(一个简单的购物车),并且用户使用一个简单的桌面应用程序来获取会话,而不是用户可以使用mobile(另一个ui模块)或web来继续其过程,因此问题是:
当会话针对一个用户时,如何合并两个有状态会话?
我当时正在考虑保留所有会话,并且一旦用户尝试通过另一个模块继续其进程,系统将找到任何存在的会话并将其与新会话合并,但是它需要大量代码,并且可能会使系统复杂。 有什么属于EJB本身的吗?
还有一个问题是,无状态和单例EJB有什么区别?
当会话针对一个用户时,如何合并两个有状态会话? 有什么属于EJB本身的吗?
不,JEE中没有这样的合并。
但是,您可以在不同的客户端之间共享相同的状态引用。 使用JNDI查找或依赖项注入获得对有状态会话Bean的引用时,容器将创建一个新的有状态Bean实例,并为其分配一个唯一的对象标识。
ejb引用知道此唯一身份,因此,使用此引用进行的每个请求都将在同一Stateful实例中处理。
因此,将在同一Stateful实例中处理不同客户端通过相同引用提出的不同请求,从而允许在客户端之间共享Stateful状态。
容器负责序列化并发请求,因此您不必担心并发性。
您需要解决的是如何使此ejb的参考适用于所有客户。
还有一个问题是,无状态和单例EJB有什么区别?
除其他差异外,在上一个问题的上下文中更相关的是:
无状态
独生子
有状态
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.