daquan198163
2004-02-04 10:23

请高手给我一个明确的答案:要通过本地接口访问EJB,客户断代码是必须和EJB存在于同一个EAR中还是只要存在于同一个appServer中就行?

banq
2004-02-04 11:55

首先需要搞清楚Java两个基本概念:reference引用和Interface接口的区别就可以了。

jrog
2004-02-04 16:50

>>>>请高手给我一个明确的答案:要通过本地接口访问EJB,客户断代码是必须和EJB存在于同一个EAR中还是只要存在于同一个appServer中就行?

如果要调用EJB的local interface,那么EJB的client必须和EJB在同一个JVM的instance中。按你的说法是必须在同一个appServer上,如果你所说的appServer不是一个clustering的环境。

daquan198163
2004-02-04 18:36

> 如果要调用EJB的local interface,那么EJB的client必须和EJB在同一个JVM的instanc

> 中。按你的说法是必须在同一个appServer上,如果你所说的a

> pServer不是一个clustering的环境。

可是我在WAS5.0上试验在一个war中通过EJB LOCAL REFERENCES引用已经部署好的另外一个ear中的EJB的本地接口,结果出错:

java.lang.ClassCastException: com.norteksoft.user.EJSLocalStatelessUserManageBeanHome_ffc78e49

henry.t
2004-02-04 22:39

我乃楼主,怎么说着说着就跑题了?我问的是EJB LOCAL REFERENCES,怎么撤到LOCAL INTERFACE了??

LOCAL INTERFACE我当然知道啦,比remote interface有效率多了,但我不是问这个。

“所以当即提出了EJB LOCAL REFERENCES这样一个解决方案,目的就是达到和LOCAL INTERFACE相同的一个功效。”

从上面这句话看出这两个东西不是同一个东西,我就是想知道区别是什么? 我有个猜想不知道对不对:如果设置了这个属性,那么知道在同一个环境里面(也就是可以本地接口查找了),那就连本地接口查找都不用了,服务器会用EJB LOCAL REFERENCES的方式查找。这个方式比LOCAL INTERFACE查找效率还要高,不过由于查找代码是我们写的,所以代码里面还是写的用LOCAL INTERFACE查找,服务器会自动帮我们转换查找方式。

不知道我上面说法对不对???请大师们指点啊~~~~~~~~~