Comsteed | 航纶

        天行健,君子以自强不息;地势坤,君子以厚德载物.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

构建一个EJB组件的步骤如下
    1.编写组件接口(EJBObject远程接口,EJBLocalObject本地接口),Home接口,Enterprise Bean等。
    2.编写部署描述文件。ejb-jar.xml等。
    3.利用Jar工具将以上打包为Ejb-jar文件。如:jar cvfm HelloWorld.jar *
    4.发布EJB。

EJB对象
    1.由容器生成的。
    2.实现了远程接口或本地接口。
    3.客户端通过EJB对象委托调用enterpriseBean的方法。

远程接口:远程访问使能,客户通过iiop调用,客户和EJB可以是分布的。其参数和返回按值传递,要求可以通过网络能传递。

    1.继承javax.ejb.EJBObject。
    2.定义并公开enterpriseBean的方法。
    3.客户端通过该接口与容器生成的EJB对象交互。
    4.其中定义的方法都必须抛出java.rmi.RemoteException异常。这是必须的,因为它继了EJBObject,而EJBObject实现了Remote接口。
    5.客户端通过远程接口调用enterpriseBean的效率是很底的。原因如下:  
      (1)首先客户端需调用本地Stub。  
      (2)Stub将参数格式化为适合网络传输的格式。
      (3)Stub与服务器端的Skeleton连接。
      (4)Skeleton解释被Stub格式化了的参数。
      (5)Skeleton调用EJB对象。
      (6)EJB对象连接缓冲,事务处理,安全检查,生命周期服务等工作。
      (7)调用enterpriseBean的业务方法。当enterpriseBean完成任务,返回Home时,将重得执行以上步骤。

本地接口:跟一般的接口没什么区别,客户和EJB在同一JVM中运行,参数和返回值没有限制,速度较快。
    1.继承javax.ejb.EJBLocalObject。
    2.本地用户可以通过本地接口高性能的访问EJB对象。(免去执行远程接口中的第5项工作)

Home接口:通过远程调用创建或查找EJB.与远程接口对应,有相似的限制。
    1.继承javax.ejb.EJBHome。
    2.用来创建EJB对象。
    3.其中有个Create方法返回容器实现了远程接口的EJB对象。并抛出两个异常。java.Rmi.RemoteException和javax.ejb.CreateException。

本地Home接口:通过本地调用创建或查找EJB,与本地接口对应。
    1.继承javax.ejb.EJBLocalHome。
    2.同本地接口相同,它是本地客户端可以使用的高性能Home接口。
    3.其中有个Create方法返回容器实现了本地接口的EJB对象。抛出javax.ejb.CreateException异常
posted on 2008-03-27 21:09  航纶  阅读(609)  评论(0编辑  收藏  举报