问题标签 [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.
ejb-3.0 - 缓存空闲超时(cache-idle-timeout-in-seconds)过去后,有状态会话 Bean 未钝化
我正在尝试了解 Stateful Session bean 生命周期。在调用激活和钝化生命周期回调时我特别感兴趣。我创建了一个演示来了解这种情况。这是我的代码:
我的远程界面是:
我的有状态会话 bean 类如下:
这个 bean 的独立客户端是:
现在我Cache Idle Timeout
在 GlassFish 3.1.2 中设置了 =20 但我的有状态会话 bean 在 20 秒后仍然没有钝化。我是在做错什么还是在 Glashfish 中没有正确发生?请帮助我理解这一点。提前致谢
session - javaee有状态bean不工作
我已经定义了一个@Stateful @StatefulTimeout(value = 2, unit = TimeUnit.HOURS)
rest bean,以便它可以保存一个private MyContext userContext;
(基本上是一个List<String>
保存所有先前传递给rest bean的值)。
我在 openshift 上的 wildfly 8.1 容器中启动了我的 web 应用程序。
不幸的是,我的 bean 不能正常工作。
似乎每次调用都会重新创建 bean,就好像容器无法将两个调用关联到同一个会话一样。客户端没有 cookie 或会话 id 参数这一事实似乎证实了这一点。
我的 app / conf 中可能缺少什么?为什么 wildfly 不自动创建用户会话?
jsf - HttpSession 或 Stateful Session Bean 中的会话跟踪?
我想开发一个像购物车这样的 jsf Web 应用程序,并且必须在购物前登录。我如何跟踪每个用户会话。在这种情况下,最好的方法是什么。在表示层(HttpSession)或服务器端的有状态会话 Bean 中跟踪会话。
提前致谢
wildfly - 在 wildfly 中,如何在不使用 EJB3.2 特定的“passivationCapable=false”的情况下禁用有状态 Bean 钝化
我已经建立了集群。我在我的项目中使用 EJB 3.1。我可以以某种方式禁用有状态会话 Bean 钝化吗?
ejb - RequestedScopre ManagedBean VS 有状态的 Bean
如何选择 UserDao 类的哪个实现?一个是有状态会话 EJB,另一个是带有 RequestedScope 注释的托管会话 bean。
有状态会话的代码似乎要简单得多。在这个用户欢迎案例中,两者都应该工作吗?
另外,有状态 EJB 的范围是什么?
用户道.java
EJBUserDao.java
ManagedBeanUserDao.java
jakarta-ee - 有状态 bean 是由容器管理还是由 EJB 中的应用程序管理?
这是我最近阅读的Oracle 博客中的一段。
这种行为与有状态会话 bean 的行为非常不同。有状态会话 bean 实例需要由客户端通过调用带有 @Remove 注释的方法来显式删除。不会被容器自动销毁;它不受任何上下文的约束。如果您将有状态会话 bean 与 HttpSession 关联,您还必须关心它在 HttpSession 结束或超时时的可靠销毁。
据此,应用程序有责任stateful session
在完成使用时删除它。
但是我读过几本书,如果@Remove
没有被调用,容器仍然会从作用域中删除 bean,但由它自己决定。
所以我想知道什么是正确的?是否@stateful
应该明确删除或将其留给容器进行删除,如果它确实进行了删除
编辑
我引用自Beginning Java EE7 by Antonio Goncalves
-一本优秀的书;第 243 页 pdf
注意可选的@javax.ejb.StatefulTimeout 和@javax.ejb.Remove 注释。@Remove 装饰 checkout() 方法。这会导致 bean 实例在您调用 checkout() 方法后从内存中永久删除。@StatefulTimeout 分配一个超时值,这是允许 bean 在被容器移除之前保持空闲(不接收任何客户端调用)的持续时间。这个注解的时间单位是 java.util.concurrent.TimeUnit,所以它可以从 DAYS、HOURS ... 到 NANOSECONDS(默认是 MINUTES)。或者,您可以避免这些注释,并依靠容器在客户端会话结束或到期时自动删除实例。但是,确保在适当的时候删除有状态 bean 可能会减少内存消耗。
java - 有状态 bean 不保持状态
我有一个有状态的bean:
我有 Arquillian 测试。
和处理器代码:
我希望 RequestProcessor 打印出乐队。但实际上我每次都为空。什么可能是错误的,或者我可能没有正确理解有状态的 bean?
java - JAX-RS 和 CDI - 注入有状态会话 bean:setter 不起作用
我正在使用 RESTEasy 开发网络服务。
我有一个“身份验证”网络服务,有两种方法:“登录”和“注销”。
我有一个有状态的会话范围 bean,UserData,它有两个属性:“loggedIn”,布尔值和“userId”,整数。
我在我的 Authentication 类中注入 UserData。它适用于“loggedIn”属性,当我调用“login”方法时,它设置为 true,然后在会话结束之前保持为 true。
但奇怪的是它不适用于“userId”属性。当我调用“login”方法时,我将 userId 设置为我的用户 id,但在调用“setUserId”方法之后,userId 仍然为空。
这是 Authentication 类代码(没有 logOut 方法,暂时未使用):
这是“UserData”类的代码:
我尝试使用或不使用“有状态”和“无状态”注释。不会改变任何东西。
我真的不知道该怎么办。
我认为这可能是一个“setter”语法错误,但我真的不知道在哪里。
编辑:顺便说一句,我在 WildFly 服务器上使用 Weld 和 RestEASY。谢谢 :)
dependency-injection - 在无状态bean中注入有状态bean
stateful session bean
在stateless session bean
using中注入 a 时DI
,究竟会发生什么:容器是否为每个无状态 bean(存在于池中)注入了一个新的有状态 bean 实例,或者它是它们之间共享的同一个实例?
为什么表明JNDI
在这种情况下使用优于DI?
我真的不明白。
java - 使用有状态会话 bean (EJB)
我最近了解了 ejb 中的有状态和无状态会话 bean。我可以毫无问题地使用无状态会话 bean(创建了多个应用程序),但我发现很难使用有状态会话 bean 实现应用程序。
这是我的场景:客户可以使用 id 登录并在他/她的帐户中进行交易。我想将 id 保存到登录 servlet 本身的会话 bean 中,以便我可以从会话中检索 id 以执行事务。
我知道如何使用 httpSessions,但不知道如何使用这些 ejb 会话(有状态 bean)。请指导,我想将帐户 ID 保存到会话(ejb 有状态会话)并在另一个 servlet 中检索它。
我用过 httpSessions ,下面是我的代码:
但是上面是正常的会话,我如何使用帐户会话bean来保存ID并检索它。
谢谢