收藏 (0) +1 (0) +1 (0) +1
收藏成功查看收藏>>

正在阅读:用本地引用提高EJB访问效率之二用本地引用提高EJB访问效率之二

2004-02-14 09:34 出处:eNet硅谷动力 作者:仙人掌工作室 责任编辑:zwg
用本地引用提高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规范获得广泛应用之前,我们还得等待一段时间。

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
手机访问回到顶部