JiveJdon Community Forums
在线186人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 20 回复 / 2 页 [ 1 2 下一页 ]  发表新帖子  回复该主题贴
henry.t

发表文章: 148
注册时间: 2003年01月02日 14:01
给他发消息
ejb local reference 概念问题 发表: 2004年02月02日 20:33 回复
现在抄一段文章给大家看看,顺便提出概念问题。文章如下:

接下来,我们要介绍一个在BES比较特别的设定项目,大家都知道从EJB2.0之后,增加了对LOCAL INTERFACE的支持,目的就是为了避免在同一EJB CONTAINER内的EJB组件,还需透过JNDI这样一个远程呼叫去找到另一EJB组件。所以当即提出了EJB LOCAL REFERENCES这样一个解决方案,目的就是达到和LOCAL INTERFACE相同的一个功效。

文章后面接着说,这样标记上这个符号以后,EJB就可以透过他直接去找部署在本服务器上的其他组件,对系统提升又很打帮助。

我的问题是,1,请具体解释一下EJB LOCAL REFERENCE
2,他和EJB LOCAL INTERFACE的区别是什么???他是包容器特有的吗?是不是有的包容器有这个功能,有些没有????????
jrog

发表文章: 53
注册时间: 2004年02月03日 17:01
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月03日 17:25 回复
我先回答你的第二个问题:既然JCP将local interface定义在j2ee spec中了,那么所有的appServer的vendor都必须实现这个interface,不然就不可能是j2ee certificated的appServer,所以您提的第一个问题的答案是:所有宣称是j2ee compatiable的appServer都应具备或者说支持这个功能(当然罗,必须是EJB2.0 compatiable的)

关于您说的第二个问题,我建议您最好看看与distributed computation有关的书籍。因为这不是一句话可以解释清楚的。
henry.t

发表文章: 148
注册时间: 2003年01月02日 14:01
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月03日 17:55 回复
还是莫名其妙啊,谁能直接解释一下啊
wwlhp@jdon

发表文章: 67
注册时间: 2003年04月25日 12:07
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月04日 09:08 回复
以前对EJB的调用必须是远程调用,现在有了local interface,就可以对其进行本地调用了。所谓本地就是指在同一个jvm内部的意思。
daquan198163

发表文章: 143
注册时间: 2003年08月19日 10:56
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月04日 10:19 回复
关注中。
“目的就是为了避免在同一EJB CONTAINER内的EJB组件,还需透过JNDI这样一个远程呼叫去找到另一EJB组件”这是不是说有了EJB LOCAL REFERENCES,同一个appserver内的EJB都可以通过本地接口来访问了?
可是我在WAS5.0上试验在一个war中通过EJB LOCAL REFERENCES引用已经部署好的另外一个ear中的EJB的本地接口,结果出错:

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

发表文章: 143
注册时间: 2003年08月19日 10:56
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月04日 10:23 回复
请高手给我一个明确的答案:要通过本地接口访问EJB,客户断代码是必须和EJB存在于同一个EAR中还是只要存在于同一个appServer中就行?
banq

发表文章: 9074
注册时间: 2002年08月03日 17:08
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月04日 11:55 回复
首先需要搞清楚Java两个基本概念:reference引用和Interface接口的区别就可以了。
jrog

发表文章: 53
注册时间: 2004年02月03日 17:01
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月04日 16:50 回复
>>>>请高手给我一个明确的答案:要通过本地接口访问EJB,客户断代码是必须和EJB存在于同一个EAR中还是只要存在于同一个appServer中就行?

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

发表文章: 143
注册时间: 2003年08月19日 10:56
给他发消息
Re: ejb local reference 概念问题 发表: 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

发表文章: 148
注册时间: 2003年01月02日 14:01
给他发消息
Re: ejb local reference 概念问题 发表: 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查找,服务器会自动帮我们转换查找方式。
不知道我上面说法对不对???请大师们指点啊~~~~~~~~~
daquan198163

发表文章: 143
注册时间: 2003年08月19日 10:56
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月05日 09:15 回复
LOCAL REFERENCES最大的好处是:你不需要把要调用的EJB的JNDI名字硬编码到你的代码中(.lookup("ejbjndiname")),而是现在配置文件里声明对该EJB的访问,然后对EJBreferencename编码
(.lookup("ejbreferencename")),在部署的时候,再把这个EJBreferencename绑定到EJB的JNDI名字上。

我的问题谁来回答呀?????????????
banq

发表文章: 9074
注册时间: 2002年08月03日 17:08
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月05日 12:04 回复
to henry.t daquan198163

我认为你们两个问题其实还是同一个问题,REFERENCE NAME其实是在调用者和被调用者之间的一个中间者,以达到调用者和被调用者完全解耦,不使用REFERENCE NAME也可以。

调用者--->JNDI ---> REFERENCE NAME ---> 被调用者的Home接口


henry.t

发表文章: 148
注册时间: 2003年01月02日 14:01
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月05日 17:02 回复
to daquan198163
根据我的经验,必须要在同一个EAR里面,如果不是就不可以了。
小弟也是初学不久,所以,呵呵,还是帮你顶一个了
daquan198163

发表文章: 143
注册时间: 2003年08月19日 10:56
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月08日 18:38 回复
to henry.t,我最近终于把这个问题弄懂了,和大家分享一下:)
正如jrog所说,如果要调用EJB的local interface,那么EJB的client必须和EJB在同一个JVM的instance中,但这只是一个必要条件,而不是充分条件,这还与ClassLoader有关,即EJB的client还必须和EJB由同一个ClassLoader加载。
这样,一个WAR就可以通过本地接口访问同一个服务器中的EJB而不需要跟那个EJB打包成一个EAR了。
JBoss默认的是由单个ClassLoader加载所有的应用,所以不存在什么问题(在我的另一个贴子里banq是这么说的),而对于WebSphere它既可以设置成采用单个ClassLoader加载所有的应用,也可以设置成每个应用由单独的ClassLoader加载,默认的是后者!
daquan198163

发表文章: 143
注册时间: 2003年08月19日 10:56
给他发消息
Re: ejb local reference 概念问题 发表: 2004年02月09日 13:06 回复
老板让我研究一下在JBoss上部署EJB,谁能给我讲讲基本步骤和方法,比如配置数据源、配置各种资源的JNDI引用……
这个主题有 20 回复 / 2 页 [ 1 2 下一页 ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam