问题标签 [stateful-session-bean]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jakarta-ee - Stateful session bean doesnt work in production - NoSuchObjectLocalException
I have a problem with deployed Java web application containing one Stateful session bean. Everything works fine until I try to invoke this bean. I get an exception:
I tried to google it and I have found that this exception means that Stateful session bean with corresponding session-key does not exist or for some reason was destroyed. However on my localhost everything works fine.
According to some article on the web there might be some database error causing this session bean to be destroyed. I have found nothing in MySQL error log. Other STATELESS session beans work fine and operates over the database without any problems.
I am stucked here and dont know what to try. Do you have any ideas what can be wrong? Is there anythig I have to setup in JDBC connection pool or resource to manage session beans to work?
UPDATE: I believe these error messages from log explain the error in some way:
ejb-3.0 - 有状态会话 Bean 生命周期
我有一个初始化同步列表的“有状态会话 bean”,我将产品添加到列表中并检查列表,它可以工作(都在同一个会话期间)。当我“取消部署”我的应用程序然后进行另一个“部署”时,我丢失了我的 bean 的所有保存数据,这是否正常?
jakarta-ee - 每次创建的有状态会话 bean
我有一个初始化 a的有状态会话 beanCollections.synchronizedList
,我将产品添加到列表中并检查列表,它可以工作(所有在同一个会话期间)。但是当我重新启动浏览器时,它不会显示列表。
在查看控制台后,我发现再次创建了 bean。
这是我的代码Servlet
:
java - SFSB 中的容器管理事务边界
我在书中读到:
通常,容器在企业 bean 方法开始之前立即开始事务。它在方法退出之前提交事务。
假设我的有状态 EJB 已经公开了 3 个业务方法,并且客户端顺序调用这 3 个方法并希望在单个事务中运行这 3 个方法。这些方法将在多个请求中调用。
现在规范说事务是在方法退出之前提交的。如果我的第一种方法成功而第二种(或第三种)方法失败,我将如何回滚整个事务?
请注意,我不想使用创建自己的事务边界。
任何帮助或正确方向的指针将不胜感激。
jakarta-ee - 何时在无状态会话 bean 上使用有状态会话 bean?
有状态会话 bean 定义如下:
有状态会话 Bean 对象的状态由其实例变量的值组成。在有状态会话 bean 中,实例变量表示唯一客户端 bean 会话的状态。因为客户端与其 bean 交互(“交谈”),所以这种状态通常称为会话状态。
无状态会话 bean 定义如下:
无状态会话 Bean 无状态会话 bean 不与客户端保持会话状态。当客户端调用无状态 bean 的方法时,bean 的实例变量可能包含特定于该客户端的状态,但仅限于调用期间。当方法完成时,不应保留特定于客户端的状态。但是,客户端可以更改池化无状态 bean 中实例变量的状态,并且该状态将保留到池化无状态 bean 的下一次调用。除了在方法调用期间,无状态 bean 的所有实例都是等效的,允许 EJB 容器将实例分配给任何客户端。也就是说,无状态会话 bean 的状态应该适用于所有客户端。
使用无状态会话 bean 优于有状态会话 bean 的优点如下:
因为无状态会话 bean 可以支持多个客户端,所以它们可以为需要大量客户端的应用程序提供更好的可伸缩性。通常,应用程序需要比有状态会话 bean 更少的无状态会话 bean 来支持相同数量的客户端。
所以想到的问题是什么时候应该使用有状态会话bean?根据我对此事的天真理解,应该尽可能坚持使用无状态会话 bean。
应该使用有状态会话 bean 的候选对象是什么?有什么好的例子吗?
java - 在有状态会话中封装无状态 bean
我有一个使用 EJB 的 Java EE 应用程序,并通过无状态 EJB 执行大部分功能。
我要求所有用户也有一个活动会话,我想知道使用 bean 的最佳方式是什么。
目前,我有一个命令行客户端,除了使用有状态 bean 登录系统外,它还直接使用无状态 bean。
我想知道是否应该让客户端通过有状态 bean 执行所有功能,这样除非存在活动会话,否则无法执行任何功能。
这对我个人来说更有意义。
我只是不太确定什么设计是“正确的”或者什么是更好的设计。
如果我继续让客户端使用无状态 bean,那么我将不得不为这些无状态 bean 提供一种方法来检查客户端是否具有活动会话。
ejb - javax.ejb.NoSuchEJBException:找不到有状态的 bean:3j011-udy7sm-hkt798pd-1-hkt7bobh-9
很多时候,每当我尝试访问某些页面或单击按钮“找不到有状态的 bean:3j011-udy7sm-hkt798pd-1-hkt7bobh-9”时,JSF 项目的屏幕上都会出现错误。有人知道这个错误的原因吗
stateless-session-bean - 为什么使用 ShoppingCart 作为有状态的 Sesson Bean?
使用有状态会话 Bean 的一个典型示例是通过 ShoppingCart 示例。我们创建 ShoppingCart 类的 bean 实例,然后将该实例存储在 HttpSession 中。然而,同样可以通过将 ShoppingCart 类作为普通 Java 类(或无状态会话 bean)轻松实现。添加产品的请求进来,我们创建一个购物车对象,然后将该购物车对象放入一个 HttpSession 中。
所以,我看不出在这里使用有状态会话 bean ShoppingCart 的意义。通常,有状态会话 bean 似乎没有发挥任何重要作用。
java - 查找返回有状态会话 bean 的新实例
我正在使用Java EE 5
, EJB 3.0
, Jboss AS 4.3.2
.
我有最简单的Stateful
豆子
我在 servlet 中查找这个 bean
但是每次StateBean
创建新实例时。
我可以调用两次,但会再次创建 lookup
新的实例StateBean
我希望在同一个 http-session 中有同一个实例
web.xml 中的 Servlet 映射
java - 通过 find 在扩展的有状态 ejb 中找到的 JPA 实体不受管理
我认为 em.find 找到的实体是由 em 自动管理的,甚至是一个事务,但是下面的这个类似乎表明相反。我错了还是那堂课有什么错误?
编辑1:实体代码
有状态 EJB 的代码:
我使用 NetBeans 7.4、GlassFish 4.0、EJB 3.2、Java DB。