WEB开发网
开发学院WEB开发Jsp 用本地引用提高EJB访问效率之二 阅读

用本地引用提高EJB访问效率之二

 2008-01-05 20:11:32 来源:WEB开发网   
核心提示:用本地引用提高EJB访问效率二、创建本地接口,通过本地接口访问EJB 要把一个现有的远程接口改为本地接口,用本地引用提高EJB访问效率之
用本地引用提高EJB访问效率

二、创建本地接口,通过本地接口访问EJB

  要把一个现有的远程接口改为本地接口,有三个地方必须修改:部署描述器,Bean的接口,以及对EJB的调用。前面我们介绍了如何通过部署描述器指定一个本地引用,现在我们要把远程接口转换成本地接口,然后修改JNDI查找调用,让它使用新的本地接口。

■ Home接口

  指定Home接口时,现在必须导入的是“javax.ejb.EJBLocalHome”,而不是“javax.ejb.EJBHome”。接口的声明也必须改变,让它从“EJBLocalHome”(一个标准Java接口)继续,而不是从“EJBHome”(一个RMI接口)继续。同时,从该接口定义的方法中唯一应该抛出的异常是javax.ejb.CreateException,而java.rmi.RemoteException异常则不再必要。

■ 本地接口

  指定本地接口时,现在必须导入“javax.ejb.EJBLocalObject”,而不是“javax.ejb.EJBObject”。接口声明也必须改变,让它从“EJBLocalObject”(一个本地接口)继续,而不是从“EJBObject”(一个RMI接口)继续。

■ 执行调用

  创建好接口、设置好部署描述器之后,剩下的工作就是执行JNDI调用,查找对其他EJB的引用。调用Bean的远程接口时,javax.rmi.PortableRemoteObject的“narrow()”方法汇集经过RMI的调用。对于本地引用,这种开销就不再必要,这时只需简单地进行JNDI查找并进行适当的类型定型。下面是一个例子:


home = (PRodUCtHome) initCtx.lookup("java:comp/env/ejb/Product");


  它不仅提高了效率,而且代码也比用来获取远程接口的代码更直观易懂。

  本地接口使得处于同一容器内的两个EJB组件能够更高效地进行通信。对于实体Bean的应用来说,这种技术尤其有用,因为与客户程序直接访问实体Bean相比,在实践中,通过会话Bean访问实体Bean得到了更广泛的认可。

  假如你预备使用本地引用,请先检查自己的应用服务器平台是否支持它。也许,在EJB 2.0规范获得广泛应用之前,我们还得等待一段时间。
进入讨论组讨论。

Tags:本地 引用 提高

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接