当前位置: 首页 > 图文教程 > Java技术 > Java基础 > Java基础:EJB创建并使用会话对象

Java基础
EL 表达式的默认变量
浅谈Java中图片的处理
JDBC工作原理,结构,访问数据库
浅谈static那些事
Jakarta-Common-BeanUtils研究心得
Java中实现排序的那些方法
批量处理JDBC语句提高处理速度
JDBC中参数的输入与输出
Java基础:JavaScript与Java区别
浅谈Java编程基础面试题
Java代码构建一个线程池
Java加密和数字签名编程(1)
Java加密和数字签名编程(2)
七道Java基础面试题,帮你面试成功
浅谈Java 多线程实践
Java中对文件的读写操作之比较
浅谈Java Bean与EJB的那些区别
浅谈制作多个线程
浅谈Daemon线程
浅谈Socket套接字中Socket类

Java基础:EJB创建并使用会话对象


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-26   浏览: 211 ::
收藏到网摘: n/a

下面小编和大家分享的是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();