关于EJB调用原理分析
日期:2007年12月12日 作者: 查看:[大字体 中字体 小字体]-
一个远程对象至少要包括4个class文件:远程对象;远程对象的接口;实现远程接口的对象的stub;对象的skeleton这4个class文件。
在EJB中则至少要包括10个class:
Bean类,特定App Server的Bean实现类,Bean的remote接口,特定App Server的remote接口实现类,特定App Server的remote接口的实现类的stub类和skeleton类。
Bean的home接口,特定App Server的home接口实现类,特定App Server的home接口的实现类的stub类和skeleton类和RMI不同的是,EJB中这10个class真正需要用户编写的只有3个,分别是 Bean类和它的remote接口,home接口,至于其它的7个class到底是怎么生成,被打包在什么地方,或者是否需要更多的类文件,会根据不同的 App Server表现出比较大的差异,不能一概而论。
拿我最熟悉的Weblogic的来说吧,Weblogic的Bean实现类,以及两个接口的Weblogic的实现类是在ejbc的时候被打包到EJB的 jar包里面的,这3个class文件可以看到。而home接口和remote接口的Weblogic的实现类的stub类和skeleton类是在 EJB被部署到Weblogic的时候,由Weblogic动态生成stub类和Skeleton类的字节码,因此看不到这4个类文件。
对于一次客户端远程调用EJB,要经过两个远程对象的多次RMI循环。首先是通过JNDI查找Home接口,获得Home接口的实现类,这个过程其实相当复杂。
首先是找到Home接口的Weblogic实现类,然后创建一个Home接口的Weblogic实现类的stub类的对象实例,将它序列化传送给客户端(注意stub类的实例是在第1次RMI循环中,由服务器动态发送给客户端的,因此不需要客户端保存Home接口的Weblogic实现类的stub 类),最后客户端获得该stub类的对象实例(普通的RMI需要在客户端保存stub类,而EJB不需要,因为服务器会把stub类的对象实例发送给客户端)。
客户端拿到服务器给它的Home接口的Weblogic实现类的stub类对象实例以后,调用stub类的create方法,(在代码上就是 home.create(),但是后台要做很多事情),于是经过第2次RMI循环,在服务器端,Home接口的Weblogic实现类的skeleton 类收到stub类的调用信息后,由它再去调用Home接口的Weblogic实现类的create方法。
在服务端,Home接口的Weblogic实现类的create方法再去调用Bean类的Weblogic实现类的ejbCreate方法,在服务端创建或者分配一个EJB实例,然后将这个EJB实例的远程接口的Weblogic实现类的stub类对象实例序列化发送给客户端。
客户端收到remote接口的Weblogic实现类的stub类的对象实例,对该对象实例的方法调用(在客户端代码中实际上就是对remote接口的调用),将传送给服务器端remote接口的Weblogic实现类的skeleton类对象,而skeleton类对象再调用相应的remote接口的 Weblogic实现类,然后remote接口的Weblogic实现类再去调用Bean类的Weblogic实现类,如此就完成一次EJB对象的远程调用。
看了一遍帖子,感觉还是没有说太清楚,既然写了帖子,就想彻底把它说清楚。
先拿普通RMI来说,有4个class,分别是远程对象,对象的接口,对象的stub类和skeleton类。而对象本身和对象的stub类同时都实现了接口类。而我们在客户端代码调用远程对象的时候,虽然在代码中操纵接口,实质上是在操纵stub类,例如:
- [1] [2] [3] [4] 下一页
-
- 关于EJB调用原理分析 相关文章:
- ·危机重重 2007年度网络安全分析报告
- ·Linux系统网络配置详细解析
- ·诊断和分析提高搜索引擎网站排名
- ·简单分析2007年11月十大网络安全漏洞
- ·简单分析Script脚本跨站攻击漏洞技术
- ·深入分析Windows操作系统死机问题
- ·解析Leopard的备份工具:Time Machine
- ·详细分析操作系统死机的问题
- ·电子杂志的创编制作过程解析
- ·分析Windows操作系统死机问题
- 关于EJB调用原理分析 相关软件
- ·SK魔兽录像分析器 V1.4 Beta 3
- ·文物典藏系列-故宫馆藏文房四宝赏析
- ·中国古籍白话解析系列合集(典藏版V1.1)
- ·《股票常识与技术分析》
- ·大败笔:34个最新的营销失败案例分析
- ·英语迷津-相似词语辨析
- ·金融炼金术:证券分析的逻辑
- ·佳作赏析
- ·股市基本分析
- ·梦的解析
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:回忆曾经的童年 纯朴天真的画面
精品推荐
热点TOP10
- ·JAVA教程 第五讲 AWT图形用户界面设计
- ·SP 短信开发-基础知识篇
- ·使用JAVAMAIL发邮件的一个例子(转)
- ·J2ME蓝牙程序开发实战入门
- ·用Java实现音频播放
- ·使用SimpleDateFormat必须注意的问题
- ·Sun:JavaFX Mobile和JavaFX Script
- ·Java EE6提案的两大主题:拓展性和概要
- ·Java会因为RoR的流行而过时吗?
- ·Java资料:Swing中的事件处理详细资料
- ·Java知识:Web应用下实现定时任务简便方法
- ·技巧:Java中用动态代理类实现记忆功能
- ·新手入门:写Java程序的三十个基本规则
- ·入门:Java初学者入门要注意的基础知识
- ·Java SE 6中XML数字签名标准Java接口
- ·JForum 2.1.7 源程序编译草记
- ·Spring中的Template和Callback模式
- ·从集合类的升级联想到Java适配器模式
- ·I18N-国际化消息和日志
- ·通过JDMK 进行遗留系统管理
特别推荐
- ·Java精华积累:初学者都应该搞懂的问题
- ·Java多媒体框架设计自动播放机实例详解
- ·如何有效防止Java程序源码被人偷窥?
- ·Cell插件在J2EE系统中的应用
- ·初学者想学Hibernate,初级基础教程
- ·Java语言实现支持视频点播的WEB服务器
- ·关于Java编程的中文问题的几条分析原则
- ·确保J2ME无线移动商业应用程序的安全性
- ·Java开源技术:Eclipse的使用技巧详解
- ·新手入门:Java中的修饰词使用方法总结
- ·JAVA开发者应该去的20个英文网站
- ·使用JDBC创建数据库访问程序
- ·JDK的命令详解
- ·Java学习从入门到精通(附FAQ)
- ·Tomcat性能调整
- ·JSF:Java中面向Web开发的生旦净末丑
- ·对Java语言入门初学者的一些建议
- ·Java技术的新方向
- ·Jive源代码研究
- ·谨慎使用Date和Time类
