在得到ejb远程对象时,能否传参数给无状态session bean?

03-08-20 yadan
调用无状态session bean Home接口的create()方法。我想在生成远程对象时传入一些参数,

是否可以通过重载create()方法来实现?

我重载了一个Home接口中的create(String)的方法,发布的时候报错了:

Warning: A stateless session bean must define exactly one create() method with no arguments.

就是说:无状态的session bean不能通过ejbCreate()方法的重载来传入参数啊???

(有状态的session bean似乎效率不高,所以不考虑。)

但是我希望session bean中带一个成员变量,每次创建时都初始化这个变量,

因为调用session bean的其他方法都需要用到这个变量。我不知道这样是否可行。

而且不同客户调用session bean是线程安全的吗? 会不会存在成员变量不同步的问题?

mellon
2003-08-20 14:06
首先,这是EJB规范定义的。

其次,如果有实例成员变量,而且需要初始化这就是有状态的。

这多少有点蛮不讲理。

mellon
2003-08-20 14:08
如果你初始化一个成员的目的仅仅是为了方法调用中使用的话,建议还是作为方法参数吧。

这样的理由不是使用实例成员的理由。

yadan
2003-08-20 14:36
谢谢mellon

用方法带参数的确能够解决,但每个方法都需要增加一个这样的参数,确实有些不爽。

ejb规范如此,无状态session bean的方法调用跟本地的静态方法调用很相似了。谁能解释一下为什么做成这样?

猜你喜欢