Tag: stateless session bean

为什么池无状态豆?

通常我们将singleton实例用于business / dao层。 在EJB的情况下汇集无状态会话bean的原因是什么?

事务TimeOut EJB对线程的影响

关于EJB的问题: 假设我有一个具有无限循环的会话bean。 它在EJB事务下运行。 现在当EJB的事务超时时,会导致无限循环线程中断或容器将停止运行无限循环的线程。

Java EE 6:如何从无状态会话Bean调用有状态会话Bean?

我有一个状态会话Bean(SFSB),它充当身份validation模块。 在SFSB中,我存储了当前登录的用户。此外,我还有一些外观(无状态会话Bean(SLSB))处理我的实体的JPA / SQL内容。 为了检查当前用户的访问权限,我尝试从SLSB中调用SFSB。 但是当从SLSB调用时,当前用户字段始终为“null”。 直接调用SFSB时,正确设置当前用户字段…为了调用我使用@EJB注释。 任何想法可能是什么问题? 这是某种上下文问题吗? 通常是否可以从SLSB调用SFSB来保留它的状态? 提前谢谢了!

具有实例变量的无状态会话bean

我有一个无状态会话bean,它包含一个公共方法,几个私有方法和一些实例级变量。 下面是一个伪代码示例。 private int instanceLevelVar public void methodA(int x) { this.instanceLevelVar = x; methodB(); } private void methodB() { System.out.println(instanceLevelVar); } 我所看到的是,methodB正在打印未传递给MethodA的值。 最好我可以告诉它从同一个bean的其他实例打印值。 什么会导致这个? 我应该指出代码99.9%的时间按预期工作。 但是,。01%对我来说是一个严重的问题/担忧。 我明白,如果我有不同的公共方法,那么我可能不会在调用之间获得相同的bean,这会导致这种行为。 但是,在这种情况下,唯一的调用是单个公共方法。 容器(在这种情况下是Glassfish)是否仍会在私有方法调用之间交换bean? (编辑)我将“类级别”重命名为“实例级别”,因为这引起了一些混乱。

为什么池无状态会话bean?

Java中的无状态bean不会在客户端的两次调用之间保持状态。 因此,简而言之,我们可能会将它们视为具有业务方法的对象。 每个方法都接受参数并返回结果。 调用该方法时,会在执行堆栈中创建一些局部变量。 当方法返回时,将从堆栈中删除本地,如果分配了一些临时对象,则无论如何都会对它们进行垃圾回收。 从我的角度来看,与通过单独的线程调用同一单个实例的方法没有区别。 那么为什么容器不能使用bean的一个实例而不是汇集其中的一些呢?