java - EJB 2.X 中 stub 和骨架的概念

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

据我所知,在 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/

相关文章:

java - 在 Java 中使用随机森林打印实际和预测的类标签

java - Java 中的 PreparedStatement 删除

java - ImageIO.read() 无限循环

java - 这个 Spring Security 示例究竟是如何工作的?

java - 从服务器编码 RMI 客户端回调时遇到问题 - UnmarshalException ClassNotFoundException

java - 使用 rmi 时的编码问题

java - EntityUtils.toString(entity) 抛出 OutOfMemory 错误

Java 桌面应用程序到客户端/服务器 (Web)

java - 无限 session 对象导致 RAM 已满

java - 无法将消息发送到远程对等本地类不兼容 : stream classdesc serialVersionUID