据我所知,在 EJB 2.x 中,客户端使用 home 接口(interface)请求对组件接口(interface)的引用,并使用该引用调用 Enterprise java bean 的业务方法。 但是我不清楚 stub 和骨架的概念。
对组件接口(interface)的引用是否充当 stub ?那哪个充当骨架呢?
请澄清。
最佳答案
Stub和skeleton其实是RMI的概念,EJB只是复用而已。因此,只有在您使用远程接口(interface)时才需要它们。
- stub 由客户端用来调用远程 EJB 上的方法 -- 它基本上是一个实现远程接口(interface)的代理对象。它负责将调用序列化为字节流并将其发送到托管 EJB 的服务器。
- Skeleton 在服务器端运行 -- 它通过网络接收来自 stub 的远程调用,反序列化调用并将其委托(delegate)给 EJB。
另请参阅:Java RMI : What is the role of the stub-skeleton that are generated by the rmic compiler
如今, stub 和骨架通常在运行时生成(或者相同的功能只是通过反射处理),因此您无需担心它们(另请参见 Do I need RMI stubs to access EJBs from my java client? - 这是特定于 Glassfish,但一般原则通常也适用于其他容器)。
关于java - EJB 2.X 中 stub 和骨架的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19818629/