初学ejb,大家看我理解得咋样?还有几个小问题,请大家帮忙解决一下,up有分!

qlampskyface 2004-10-20 04:56:55
InitialContext context = new InitialContext();
Object ref= context.lookup(JNDIname);
accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);
ejbObject = accHome.create();
上面即是ejb实例的一个很常见的创建过程
我的理解如下:
上面的创建过程是通过远程接口创建ejb实例的过程:即先通过JNDIname找到ejb本地接口的一个实例,然后再通过本地接口的实例创建ejb实例,PortableRemoteObject.narrow(ref,AccountHome.class);实际上是一个强制转换,由于是远程强制转换,所以要用PortableRemoteObject.narrow()方法。
---------------------------------------------------------------------------------
如果是本地创建得话,那么就可以直接使用本地接口进行创建,不必使用远程接口
---------------------------------------------------------------------------------
另外,我想知道以下问题的答案:
1.每个ejb类是不是都必须实现远程接口和本地接口吗?(这个问题的结论好像是肯定的)
2.远程接口就只有继承EJBObject的接口吗?本地接口就只有继承EJBHome的接口吗?
3.要是第2题的结论是肯定的,那么EJBLocalObject,EJBLocalHome等是什么接口,它们和EJB是什么关
系?
4.要是第2题的结论是否定的,那么EJBLocalObject,EJBLocalHome和EJBObject,EJBHome等接口是什
么关系?什么情况下用到这些接口呢?

请大家讨论!

...全文
1633 60 打赏 收藏 转发到动态 举报
写回复
用AI写文章
60 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqj9899 2004-11-05
  • 打赏
  • 举报
回复
好贴,我也正疑惑呢,帮你up
jackboy2004 2004-10-26
  • 打赏
  • 举报
回复
啊,
就结了听.!
qlampskyface 2004-10-22
  • 打赏
  • 举报
回复
呵呵,论坛里的发言就这样

下面的问题我还不太明白,讨论讨论这个吧,最好能有个程序框架
------------------------------------------------------------
如果你想远程功能的就用Remote接口和Home 接口.一般都只用本地就足够了.都只用LocalObject和LocalHome就足够了, 其实,你想用远程也行,在本地前面加一个Session Bean(无状态)做成Facade模式.所有本地接口都继承它就行了,我的建议!


delegate--->facade-->sessionBean-->entityBean
侠雨飞飞 2004-10-22
  • 打赏
  • 举报
回复
不客气

帖子我先前已经大致看了一遍
坦白的讲
很乱
俺的功力本来就很浅
怕走火入魔,不敢多言

但看来,似乎还是说多了
赎罪则个

qlampskyface 2004-10-22
  • 打赏
  • 举报
回复
楼上的,谢谢你的建议~

不过我也有个建议:建议你先看完帖子:)
侠雨飞飞 2004-10-22
  • 打赏
  • 举报
回复
建议楼主看一下《精通EJB第2版》
关于本地接口远程接口讲的很好

另外,客户端与EJB位于同一进程中,本地接口才起作用,这也是本地接口一个缺陷
Eddie005 2004-10-22
  • 打赏
  • 举报
回复
upupup~
qiyao 2004-10-22
  • 打赏
  • 举报
回复
<--------------高手看过来! 能不能搞定这个?
http://community.csdn.net/Expert/topic/3472/3472337.xml?temp=.2961847
qlampskyface 2004-10-22
  • 打赏
  • 举报
回复
上面两位兄弟,能不能具体一点哈,我看不明白页~~
qlampskyface 2004-10-22
  • 打赏
  • 举报
回复
to 老叶(和老爷是谐音,如果你真叫这个名,以后占不少便宜哦):
感谢你的推荐!

--------------------------
to a10002()

说两句吧
--------------------------

下班前结帖~~~~
wjpsdm 2004-10-22
  • 打赏
  • 举报
回复
带local的是本地接口,否则是远程接口
yeshucheng 2004-10-22
  • 打赏
  • 举报
回复
楼上的,我很想听听你的意见:)
a10002 2004-10-22
  • 打赏
  • 举报
回复
我觉得,这也没有什么,


一个是远程的!(EJBObject、EJBHome) 一般来来说有远程就可以了,不管在不在同一机子上!只是因为EJB2.0之后为了提高效率而又搞了个本地的,因为以前把本地算作远程!

一个是本地的! (EJBLocalObject、EJBLocalHome) 现在只不过是把远程与本地分开,让本地的不要再像远程那样,浪费时间。java一直都在做这个工作,这大家都知道!

致于有些人说的:EJBLocalObject是个相当数据本地映射关系,而EJBLocalHome是个本地接口引用,两者没有关系,就是EJB2。0的规范:)
我倒不认同,楼主你自己贴的E文也证明了这一点!
yeshucheng 2004-10-22
  • 打赏
  • 举报
回复
呵呵,“老叶”就免了:)
推荐看两本书是可以的《EJB设计模式》《J2EE核心》
joydsj 2004-10-22
  • 打赏
  • 举报
回复
本地接口继承了EJBHome接口错误,
应继承javax.ejb.EJBLocalObject接口才对
qlampskyface 2004-10-22
  • 打赏
  • 举报
回复
老叶,呵呵,如果太繁长的话,能否给出相关的链接,谢了哈!
yeshucheng 2004-10-22
  • 打赏
  • 举报
回复
如果要一一阐述恐怕这里篇幅不够用:)
yeshucheng 2004-10-22
  • 打赏
  • 举报
回复
楼主打算:打破沙锅问到底:)
delegate--->facade-->sessionBean-->entityBean
这个是目前应用的比较多的结构
BlackSeptember 2004-10-22
  • 打赏
  • 举报
回复
up 2cnd
xitianjile 2004-10-22
  • 打赏
  • 举报
回复
远程接口一定要有吧
本地接口可不要.
加载更多回复(40)

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧