EJB菜鸟入门三板斧

 
一板斧: 
     缓冲池和活化,钝化有什么区别? 
     答:根本没有联系,缓冲池是无状态session bean和entity bean 

     为了减少使用内存,在内存中使用实例池,当客户端用home接口 
     生成一对象时,就把一个实例赋给它,对象被销毁后,实例再回到 
     实例池中。原来是不是会想缓冲池是建在硬盘上的?想想虚拟内存的 
     速度,不会那么慢吧?:)而活化钝化是有状态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对象。 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值