快速业务通道

企业JavaBeansTM技术介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
看一个有关电子商务的例子-- 一个网上"购物车"。考虑一下你将如何建立一个购物车Bean? 或许你应该从建立Bean的远程接口开始:

public interface ShoppingCart extends javax.ejb.EJBObject{boolean addItem(int itemNumber) throwsjava.rmi.RemoteException;boolean purchase() throws java.rmi.RemoteException;}

这个接口定义了两个方法: additem()用于向购物车中增加物品, purchase()用于完成这笔交易。一旦公共接口的定义完成,我们必须编写Bean的类:

public class ShoppingCartEJB implements SessionBean{public boolean addItem(int itemNumber){// the code for adding items to the cart// may include JDBC code.}public boolean purchase(){//the code for purchases}public ejbCreate(String accountName, String account){// object initialization code}}

请注意, 企业Bean类不实现Bean的远程接口, 它是由EJBObject来完成的。另外, session Bean不支持自动的persistence。因而, 显式数据库访问必须在其方法中实现。例如, 在purchase()方法中, JDBCTM调用可被用来更新数据库, 而由容器在安装时生成的EJBObject可实现远程接口;EJBObject的作用就象是一个"代理人", 它将方法调用传递给安装在服务器中的Bean实例。

客户做的第一件事是使用JNDI为所需要的Bean定位EJBHome。在本例子中, EJBHome对象可能以下列形式出现:

public interface CartHome extends javax.ejb.EJBHome{Cart create(String customerName , String account)throws RemoteException, BadAccountException;}

CartHome接口包含一个create()方法, 当客户请求一个新的Bean的时候该方法将被调用。请注意, 这个方法是在EJBObject中实现的并将在被调用时调用Bean类中的ejbCreate()方法。

ShoppingCart类的EJBHome对象可使用下列代码来定位:

Context initialContext = new InitialContext();

CartHome cartHome = (CartHome) initialContext.lookup

("application/mall/shopping-carts");

在本例中, 调用InitialContext()以得到JNDI命名层次的根;lookup()方法被用来得到CartHome。 在此种情况下, "applications/mall/shopping.carts"是JNDI到达你感兴趣的CartHome的路径。此时, cartHome持有了ShoppingCartEJB的EJBHome对象的引用。然而, 请注意客户的JNDI的命名空间可能被设置为包括分布于网络上的多种机器上的EJB容器; EJB容器的实际位置一般来说对客户是透明的。

下例显示了客户是如何使用EJBHome对象并调用方法的:

ShoppingCart cart = cartHome.create("Emma","0507");Cart.addItem(100);Cart.addItem(251);Cat.purchase();

在上述代码中, create()方法创建了一个新的session Bean, 变量cart 包括了一个对远程EJB Object的引用, EJB Object允许你调用它的方法additem()和purchase()。cartHome中的create()方法将调用对应的Bean中的ejbCreate()方法。

EJB的未来

EJB规范1.0是在1998年JavaOne大会期间发布的, 它为建立分布式商务对象系统提供了坚实的结构体系基础, 它不应该被认为是这一研究主题的结束, 而应该是进一步完善这一体系结构的开始。该规范的一些内容还需改进, 特别是处理persistence对象的EJB模型。另外, 还应考虑标准化开发工具和开发系统之间的协定,以为所有开发环境提供统一的调试界面。

将来, SunMicrosystem还将研究兼容性问题。有两个领域涉及到兼容性问题, 一是"EJB兼容的"服务器到底是由什么组成的? 一个兼容性计划有望在不久的将来出现; 二是保证不同厂商的EJB服务器具有相互操作性。Sun正在就这些问题征求其合作伙伴的意见, 以决定如何发展。

结论

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号