EJB 2.X中存根和骨架的概念

Bac*_*ria 4 java rmi java-ee iiop ejb-2.x

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

对组件接口的引用是否充当存根?然后哪一个充当骨架?

请澄清.

Nee*_*aks 6

Stub和skeleton实际上是RMI概念,EJB只是重用它们.因此,只有在使用远程接口时才需要它们.

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

另请参阅:Java RMI:rmic编译器生成的stub-skeleton的作用是什么

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