在定义EJB时用摸版方法实现的

解决方案 »

  1.   

    EJB Object在EJB容器内实现了remote接口(或者local接口),并且包含一个对bean class的引用。
    EJBHome Object实现home接口,它负责创建,删除EJBObject
    当你在client端调用home interface的create method,EJBHome Object创建EJB Object的实例(包含bean class的引用),bean class的ejbCreate method被调用,执行成功后返回一个remote引用 给client.
    所以ejb容器根据接口和配置描述文件生成EJB Object和EJBHome Object 还有stub and skeleton
      

  2.   

    怎么实现是各个容器制造商的事情,也是他们的商业机密。只要符合SUN定出specification,怎么实现都行。各个容器制造商的实现方法可能大相径庭。比如使用IBM的WAS,EJB部署后会产生大量的额外的class文件;但是部署在Web logic8.1上,产生的文件就完全不一样。这完全说明了各个厂商对接口的实现是不同的。
      

  3.   

    就是,每个厂商都有自己的方法,只要符合规范即可...
    如果你想知道,可以看jboss的源码,不过其他容器和jboss方法不一样的..
      

  4.   

    to flowercat(小强)对啊,我老想着动态生成一个实现这些接口的类,然后再new instance返回给client
    没有想到匿名类  :)
    这样简单了,只需要
    new interface() {
       //
       //
    }
    就可以返回这种实例了,不需要动态再生成一个类(不知道jvm在碰到匿名类时内部是咋处理的?是不是还会动态生成一个新类,然后返回实例?还是别的什么方法?大家说说)