当前位置: 首页 > 图文教程 > Java技术 > Java基础 > Java基础:EJB创建并使用会话对象
下面小编和大家分享的是EJB中创建并使用会话对象,希望对大家有所帮助。
主接口定义一个或多个create(...)方法,每个方法定义了一种创建会话对象的方式,create方法的参数用来初始化创建的会话对象的状态。
下面这个例子演示了有两个create<METHOD>(...)方法的主接口:
public interface CartHome extends javax.ejb.EJBHome{
Cart create(String customerName,String account)
throws RemoteException,BadAccountException,CreateException;
Cart createLargeCart(String customerName,String account)
throws RemoteException,BadAccountException,CreateException;}
下面演示了客户端怎样使用主接口的create<METHOD>(...)方法创建远程对象:
cartHome.create("John","7506");
客户端从来不会直接访问会话Bean类的实例。客户端使用会话Bean的远程接口来访问会话Bean的实例。实现会话Bean的远程接口的实例由容器提供,它的实例叫做会话EJBObjects。
会话EJBObject支持:
·对象的业务逻辑方法
会话EJBObject代理对会话Bean实例的业务逻辑方法的调用。
·javax.ejb.EJBObject接口定义的方法。这些方法允许客户端:
·获取会话对象的主接口
·获取会话对象的句柄
·测试会话对象是否与另一个是同一个
·删除会话对象
javax.ebj.EJBObject接口中定义的方法是由容器实现的,而并不是由会话Bean类代理的。
客户端使用Cart主接口的create方法创建一个Cart会话对象。客户端使用这个会话对象来填写购物单并购买相关内容。
假设用户开始购买后终止一两天,然后再去完成.客户端可以通过获取会话对象的句柄,把句柄序列化到持久性的存储器中,然后重新用它来创建最初的Cart来实现。
对下列例子,开始,在JNDI中查找Cart的主接口,然后使用主接口来创建一个Cart会话对象并加入一些购物项:
CartHome cartHome = (CartHome)javax.rmi.PortableRemoteObject.narrow{
initialContext.lookup(...),CartHome.class);
Cart cart = cartHome.createLargeCart(...);
cart.addItem(66);
cart.addItem(22);
下面我们决定稍候完成这次购物,因此要序列化这个Cart会话对象的句柄并把它存在一个文件里:
Handle cartHandle = cart.getHandle();
//serialize cartHandle,store in a file...
最后我们从文件中反序列化句柄,并重新创建cart会话对象的引用,并购买购物单里的商品:
Handle cartHandle = ...;//deserialize from a file...
Cart cart = (Cart)javax.rmi.PortableRemoteObject.narrow(
cartHandle.getEJBObject(),Cart.class);
cart.purchase();
cart.remove();