需要 EJB 无状态 Bean 方面的帮助
我是 EJB 新手。我需要在调用同一 bean 上的任何方法之前调用远程无状态 bean 的方法并设置一个值。第一个方法调用设置的值应该可用于第二个方法。我知道无状态 bean 无法保存下次调用的实例变量值。是否有任何替代方法可以使值可用于 bean 方法而不将 bean 设为有状态 bean。有什么调整技巧吗?
I am new to EJB. I have a requirement of calling a method of remote stateless bean and setting a value, before calling any method on the same bean. The value set from first method call should be available to second method. I know that a stateless bean can't hold instance variables values for next calls. Is there any alternative to make the value available to the bean method without making bean as stateful bean. any tweaking tip?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果不将值传递给第二个方法或将其保留在数据库中,例如在数据库中,我不这么认为(使用实例变量当然不是一个解决方案,因为您不确定在每个方法调用中都调用相同的会话 bean,因为该池可以为您的方法调用返回任何会话 bean)。
Without passing the value to the second method or persisting it, for example in database, I don't think so (using an instance variables is certainly not a solution as you're not sure to call the same session bean with each method call because the pool can return any session bean for your method call).
这是无状态会话bean 的错误使用。无状态应该仅依赖于传递给它的参数,而不依赖于其他先前的状态。即使你对它进行了修改,想想以后会支持它的可怜人。
数据库绝对是一种更好的方法。否则,你可以使用拦截器吗?它们在 EJB 3.0 中功能强大,甚至可以更改参数、设置某些值等。
It is a wrong use of stateless session bean. Stateless should depend upon only the parameters that are being passed to it and no other previous state. Even if you put a hack around it, think of poor guys who will support it later.
Database is definitely a better way of doing it. Otherwise, can you use interceptors ? They are powerful in EJB 3.0 and can even change the parameters, set some value etc.