【问题标题】:need help in EJB stateless beans在 EJB 无状态 bean 方面需要帮助
【发布时间】:2010-12-27 13:08:11
【问题描述】:
我是 EJB 新手。在调用同一个 bean 上的任何方法之前,我需要调用远程无状态 bean 的方法并设置一个值。从第一个方法调用设置的值应该可用于第二个方法。我知道无状态 bean 不能为下一次调用保存实例变量值。是否有任何替代方法可以使 bean 方法可以使用该值而不使 bean 成为有状态 bean。任何调整提示?
【问题讨论】:
标签:
java
ejb-3.0
stateless
stateless-session-bean
【解决方案1】:
是否有任何替代方法可以使 bean 方法可以使用该值而不使 bean 成为有状态 bean?
如果不将值传递给第二个方法或将其持久化,例如在数据库中,我不这么认为(使用实例变量肯定不是解决方案,因为您不确定每个调用相同的会话 bean方法调用,因为池可以为您的方法调用返回任何会话 bean)。
【解决方案2】:
这是对无状态会话 bean 的错误使用。无状态应该只依赖于传递给它的参数,而不依赖于其他先前的状态。即使你对它进行了修改,想想以后会支持它的可怜人。
数据库绝对是一种更好的方法。否则,您可以使用拦截器吗?它们在 EJB 3.0 中非常强大,甚至可以更改参数、设置一些值等。