问题标签 [stateless-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.

0 投票
2 回答
2526 浏览

java - 我们可以从静态方法访问/调用无状态会话 Bean 吗?

我在一个有许多静态方法的类中注入了一个无状态会话 bean。我想从这些静态方法中访问这个 bean。没有关于此的文档。

所以我想知道它是否允许。如果是,有什么缺点吗?推荐/不推荐?

0 投票
1 回答
390 浏览

java - Session Bean 能否实现除 SB 接口之外的其他接口?

我有一个这样的会话 Bean:

我想知道是否也可以实现另一个接口。例如,我有一个名为MyXYXInterface. 我希望上面的 bean 也能实现这一点。

那么,在 EJB 的/会话 Bean 的上下文中,这是一件坏事吗?它会干扰容器中 EJB 的处理吗?

0 投票
2 回答
82385 浏览

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 的候选对象是什么?有什么好的例子吗?

会话 Bean

0 投票
2 回答
1180 浏览

multithreading - 不同的线程可以访问无状态 EJB 的特定实例的不同方法吗?

考虑一个特定的实例MyBean1。然后我们知道method1()或者method2()不能被多个线程同时访问。但是,当method1()被一个线程访问时,可以method2()被另一个线程访问吗?

0 投票
1 回答
993 浏览

jakarta-ee - 参数通过远程会话 bean 传递到 DTO/DAO 服务后端

我对在 JavaEE 上进行开发比较陌生。我想知道将参数传递到会话 bean 以进行对象创建或删除调用的最佳格式是什么。

对于我的后端,我使用带有 DAO 的 DTO 在数据库上运行创建、更新、删除和读取操作

我有一个简单的 DAO 接口:

(我相信BusinessDAO现阶段的执行是无关紧要的)

那么关于我的实际问题 - 如果我有一个远程(无状态会话 bean)EJB 接口,我是否应该在远程 EJB 接口中定义一个方法:

或类似的东西:

我有一个简单的客户端程序,可以调用这些方法中的任何一种。

我的想法是,对于对象创建,BusinessObject bo定义会更好地工作,但是我似乎认为有一种模式可以遵循远程界面中的其他定义。
我不知道如何将相同样式的方法定义合并到类似的东西findObject(BusinessObject bo)

标准做法是BusinessObject在该对象中创建并仅提供 ID 字段,然后 DAO 实现将填充的对象返回给客户端(通过会话 bean)?
还是将 a 传递int idfindObject方法并只返回 a更好BusinessObject

0 投票
1 回答
1016 浏览

transactions - EJB 3.0 事务和同步

使用 EJB 3.0,两个线程将尝试运行此代码(即在无状态会话 bean 中)。两个线程都能够通过 if 语句并打印出该语句。

我尝试将事务隔离级别设置为可序列化但没有成功:

也许我使用了错误的方法。

更新

不能使用 Singleton 会话 bean,因为 Jboss 5 不支持它们。现在我正在尝试以下代码来解决我在其他时候遇到死锁的问题:

0 投票
2 回答
353 浏览

java - 在有状态会话中封装无状态 bean

我有一个使用 EJB 的 Java EE 应用程序,并通过无状态 EJB 执行大部分功能。

我要求所有用户也有一个活动会话,我想知道使用 bean 的最佳方式是什么。

目前,我有一个命令行客户端,除了使用有状态 bean 登录系统外,它还直接使用无状态 bean。

我想知道是否应该让客户端通过有状态 bean 执行所有功能,这样除非存在活动会话,否则无法执行任何功能。
这对我个人来说更有意义。

我只是不太确定什么设计是“正确的”或者什么是更好的设计。
如果我继续让客户端使用无状态 bean,那么我将不得不为这些无状态 bean 提供一种方法来检查客户端是否具有活动会话。

0 投票
0 回答
486 浏览

jakarta-ee - EJB 在每次业务方法调用之前重新注入所有依赖项

这个问题毫无疑问,实际上是一个提示。

您是否知道会话 EJB 在每次业务方法调用之前重新注入所有依赖项?好吧,直到几分钟前我才知道,这让我很头疼。

我认为依赖注入只发生在实例的创建中,但事实并非如此。EJB 3.1 规范说:

“如果会话 bean 使用依赖注入,则容器会在创建 bean 实例之后以及在 bean 实例上调用任何业务方法之前注入这些引用。” 第 4.3.2 节

不知何故,这个定义可以赋予无状态会话 Bean 具有会话状态的能力,这正是我所需要的。例如,如果您在 SLSB 中注入一个 @SessionScoped bean,而与您的请求处理的池实例无关,那么 SessionScoped bean 将始终符合当前客户端的会话。换句话说,SLSB 实例不可能拥有另一个客户端的 SessionScoped bean。

如果两个用户交替使用相同的 SLSB 实例,这使得 SLSB 通过 @Inject 接收登录用户作为实例字段而不会导致任何问题。例如:

然后,“test”方法的各种调用的结果是这样的:

请注意,即使调用相同的实例,字段“loggedInUser”也会根据调用该方法的用户而正确地变化。

0 投票
1 回答
354 浏览

stateless-session-bean - 为什么使用 ShoppingCart 作为有状态的 Sesson Bean?

使用有状态会话 Bean 的一个典型示例是通过 ShoppingCart 示例。我们创建 ShoppingCart 类的 bean 实例,然后将该实例存储在 HttpSession 中。然而,同样可以通过将 ShoppingCart 类作为普通 Java 类(或无状态会话 bean)轻松实现。添加产品的请求进来,我们创建一个购物车对象,然后将该购物车对象放入一个 HttpSession 中。

所以,我看不出在这里使用有状态会话 bean ShoppingCart 的意义。通常,有状态会话 bean 似乎没有发挥任何重要作用。

0 投票
2 回答
1795 浏览

java - 从 Thread 调用会话 bean 时出现 NullPointerException

我的简单锻炼计划有些问题。我想从线程调用会话 bean,但它变成了 NullPointer 异常!但如果我从主线程调用它,它可以正常运行

这是警告和例外

这是调用远程会话 bean 的可运行类

这是我的主要功能

这是会话 bean