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

时间:2013-11-06 17:24:00

标签: java java-ee rmi ejb-2.x iiop

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

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

请澄清。

3 个答案:

答案 0 :(得分:5)

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

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

另请参阅:Java RMI : What is the role of the stub-skeleton that are generated by the rmic compiler

如今,存根和骨架通常在运行时生成(或者相同的功能只是通过反射处理),因此您无需担心它们(另请参阅Do I need RMI stubs to access EJBs from my java client? - 这是Glassfish特有的,但一般原则通常也适用于其他容器。)

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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