龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

用本地引用提高EJB访问效率之二[组图]

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
用本地引用提高EJB访问效率 二、创建本地接口,通过本地接口访问EJB !-- frame contents -- !-- /frame contents -- 要把一个现有的远程接口改为本地接口,有三个地方必须修改:部署描述器,B
用本地引用提高EJB访问效率
  
   二、创建本地接口,通过本地接口访问EJB
  
   <!-- frame contents -->
<!-- /frame contents -->   要把一个现有的远程接口改为本地接口,有三个地方必须修改:部署描述器,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规范获得广泛应用之前,我们还得等待一段时间。
  进入讨论组讨论。

  
精彩图集

赞助商链接