加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

EJB调用机制

发布时间:2020-12-17 01:13:10 所属栏目:安全 来源:网络整理
导读:???? 由于EJB的调用过程对开发者来说是透明的,以至于我们错误地认为lookup()方法返回的对象就是Bean实例。实际上,客户端与Session Bean交互时,它并不直接与Bean实例打交道,而是经由Bean的远程或本地接口。当调用远程或本地接口的方法时,接口使用的是存

???? 由于EJB的调用过程对开发者来说是透明的,以至于我们错误地认为lookup()方法返回的对象就是Bean实例。实际上,客户端与Session Bean交互时,它并不直接与Bean实例打交道,而是经由Bean的远程或本地接口。当调用远程或本地接口的方法时,接口使用的是存根(Stub)对象。该存根实现了Session Bean的远程或本地接口。它负责将方法调用经过网络发送到远程EJB容器,或将请求路由到位于本地JVM内的EJB容器。存根是在部署期间使用JDK自带的java.lang.reflect.Proxy动态生成。

??? 当EJB部署到应用服务器时,EJB容器为EJB生成存根(stub)类和骨架(skeleton)类的字节码。存根和骨架对开发者来说是不可见的。客户端使用lookup()方法在应用服务器的JNDI树中查找EJB,应用服务器把存根对象序列化后返回客户端。这时客户端远程接口引用的是存根对象。接着,客户端开始业务方法的调用:

1.客户端调用远程接口的xxxMethod()方法(实际上调用的是存根对象的xxxMethod()方法,该存根实现了某一远程接口)。

2.方法调用经过IIOP Runtime被转换成CORBA IIOP消息发往应用服务器。

3.应用服务器接收到请求消息后,交由骨架(skeleton)处理。骨架通过IIOP Runtime解析协议消息,并根据协议要求调用Bean实例的xxxMethod()方法。

4.骨架(skeleton)将xxxMethod()方法的返回值经过IIOP Runtime 转换成CORBA IIOP应答消息发回客户端。

5.存根对象通过IIOP Runtime将CORBA IIOP应答消息解析成返回值。

?

如果有过webservice编程经验,使用EJB的存根访问EJB与使用webservice的代理存根访问webservice是非常相似的,只不过webservice的代理存根将方法调用转换成SOAP协议,而EJB的存根将方法调用转换成CORBA IIOP协议。

?

WebService是行业标准,而EJB是平台标准。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读