Ejb

构建BEAN的五个步骤:

一)编写所有业务方法的bean。提供能够供客户端调用的具体业务方法。这里的bean有三种类型,会话bean,实体bean,消息驱动bean。每种bean需要实现各自的接口。

    public class HelloWorld implements SessionBean{

             //一堆来自sessionbean接口的方法

             ......

             pubilc void sayHello(){System.out.print("Hello world");}

             //不是来自sessionbean的方法,但是必须要有

             public void ejbCreate(){}

        

     }

二)为bean编写两个接口

      一个是组件接口

     public interface IHelloWorld extends EjbObject{

                   poblic void sayHello() throws RemoteException;

     }

     另一个是Home接口

    public interface IHelloWorldHome extends EJBHome{

            //返回值必须是组件类型

            public IHelloWorld create() throws CreateException,RemoteException;

    }

三)创建一个xml部署描述文件,告诉服务器你的bean是什么,以及如何管理它。

   xml中描述的是你的bean结构,包括三个文件(组件接口,home接口和bean类),服务器不会根据你的类或接口的名字来确定哪个是bean,哪个是home接口,当然,bean的描述符并不只是这点内容。

四)把bean,接口和部署描述文件都放在一个ejb-jar文件里。

                       myEjb.jar

                            /   \ 

                           /     \

                          /       \

                 META-INF   headfirst

                        |              /    |     \

                        |             /     |       \

         ejb-jar.xml       Helloworld.class   IHelloWorld.class  IHelloWorldHome.class

 

五)用服务器开发商提供的工具,吧bean部署到服务器上

 

 

 

RMI相关知识

一)EJB使用了RMI,从而使客户端可以访问bean

二)远程客户是指在另外一个JVM中运行的对象。

三)远程对象一直呆在它自己的堆里,客户调用的是这个远程对象的的代理的方法,而这个代理成为桩(stub)

四)桩对象处理和远程对象通信的所有底层网络细节

五)客户想要调用远程对象的一个方法,实际上是在桩上调用的这个方法,而这个桩与客户在一个jvm中也就是堆中

六)对于客户来说,调用远程对象方法和调用本地方法是一样的,只不过远程对象方法可能跑出一个RemoteExcepion

七)桩吧参数包装起来,并把调用的相关信息放松给服务器上的一个骨架。骨架本身是可选的,不过服务器上必须有人来做骨架,我们不用关系是谁来做骨架。

八)参数和返回值必须是一下类型:基本类型,serializable对象,基本类型或者serializable对象组成的一个集合对象或数组对象,或者是一个Remote对象。如果不在以上范围,就会跑出一个运行时异常。

九)如果把一个对象作为参数或者返回值进行传递,那么这个对象会按照串行化副本发送,并在远程对象的堆里逆串行化这个对象。

十)如果把一个远程对象作为参数或者返回值进行传递,实际上传递的是这个对象的桩。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值