4

据我所知,在 EJB 2.x 中,客户端使用 home 接口请求对组件接口的引用,并使用该引用调用 Enterprise java bean 的业务方法。但是我不清楚存根和骨架的概念。

对组件接口的引用是否充当存根?那么哪一个充当骷髅呢?

请澄清。

4

3 回答 3

6

存根和骨架实际上是 RMI 概念,EJB 只是重用它们。因此,仅当您使用远程接口时才需要它们。

  • 客户端使用存根调用远程 EJB 上的方法——它基本上是实现远程接口的代理对象。它负责将调用序列化为字节流并将其发送到托管 EJB 的服务器。
  • Skeleton 在服务器端运行——它通过网络从存根接收远程调用,反序列化调用并将其委托给 EJB。

另请参阅:Java RMI:rmic 编译器生成的存根骨架的作用是什么

如今,存根和骨架通常是在运行时生成的(或者相同的函数只是通过反射处理),所以您不必担心它们(另请参阅我需要 RMI 存根从我的 java 客户端访问 EJB 吗? - 这是特定于 Glassfish,但一般原则通常也适用于其他容器)。

于 2014-09-18T06:34:37.710 回答
1

骷髅自 1998 年以来就已经过时了。不要担心它们。

于 2013-11-06T21:05:51.090 回答
1

当您使用远程接口时,存根和骨架就在那里。存根是一个实现远程接口的对象(通常通过代码生成来实现),骨架在容器内部实现,并调用 EJB 上的方法(在容器内部)。

于 2013-11-06T21:40:07.780 回答