ITPub博客

首页 > 应用开发 > Java > EJB菜鸟入门三板斧:) (转)

EJB菜鸟入门三板斧:) (转)

原创 Java 作者:worldblog 时间:2007-12-09 10:34:55 0 删除 编辑
EJB菜鸟入门三板斧:) (转)[@more@]

一板斧:
  缓冲池和活化,钝化有什么区别?
  答:根本没有联系,缓冲池是无状态session bean和entity bean
  为了减少使用内存,在内存中使用实例池,当客户端用hone接口
  生成一对象时,就把一个实例赋给它,对象被销毁后,实例再回到
  实例池中。原来是不是会想缓冲池是建在硬盘上的?想想虚拟内存的
  速度,不会那么慢吧?:)而活化钝化是有状态session bean为了保存
  它的状态,把它的状态写入到二级储存中,也就是硬盘了。

二板斧:
  EJB之间是怎么调用的呢?
  答:和客户端调用一样的嘛。先用home接口找到或创建,再用远程接口
  和ejb对象进行互相访问。不会吧?同一台机子还用Rmi?没办法,看看
  ejb的定义:EJB的结构是开发和配置基于组件的分布式商务应用程序
  一种组件结构。用EJB结构开发的应用程序是可伸缩的、事务性的、多
  用户安全的。这些应用程序可能只需编写一次,然而可以在支持EJB规
  范的任务服务器平台上配置。所以这就是为什么ejb适用于高端应用,
  不过新出的local interface改变了这一点:)

三板斧:
  narrow是什么东东?
  narrow是rmi/iiop为了兼容Corba而加的一个东东。因为corba为了
  兼容诸如cobol这样的语言,而不支持绝对的强制类型转换。而rmi
  有一些必须要将远程引用从更通用的类型转变成更特殊类型的方法。
  corba提供了明确限制引用为特殊类型的方法。Javax.rmi.portable
  remoteobject.narrow()方法抽象了此方法。仅在ejb home或ejb对象
  的远程引用不带特殊Remote接口类型返回时,才需要使用narrow方法。
  这发生在六种情况下:
  1.使用javax.naming.context.lookup()方法获得EJB home接口。
  object ref=jndicontext.lookup("CabinHome");
  CabinHome home=(Cabinhome)portableremoteobject.narrow(ref
  ,CabinHome.class);
  2.使用javax.ejb.handle.getejbobject()方法获得EJB对象引用。
  Handle handle=....//get handle
  object ref=handle.getejbobject();
  CabinHome home=(Cabinhome)portableremoteobject.narrow(ref
  ,CabinHome.class);
  3.使用javax.ejb.homehandle.getejbhome()方法获得ejb home引用。
  Homehandle homehdle=....//get home handle
  EJBhome ref=homehdle.getejbhome();
  CabinHome home=(Cabinhome)portableremoteobject.narrow(ref
  ,CabinHome.class);
  4.使用javax.ejb.ejbmetadata.getejbhome()方法获得ejb home引用。
  EJBmetadata metadata=homehdle.getejbmetadata();
  ejbhome ref=metadata.getejbhome();
  CabinHome home=(Cabinhome)portableremoteobject.narrow(ref
  ,CabinHome.class);
  5.从一个home接口查找方法的返回集合中获得ejb对象引用。
  6.从任何商务对象中返回广泛的ejb对象。

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-990424/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    6241
  • 访问量
    2405142