【发布时间】:2011-08-10 09:33:50
【问题描述】:
是否从在同一中调用远程@remote 接口 EJB-JAR 或 EAR 会使应用服务器使用 RMI/RMI-IIOP?
或者应用服务器会非常智能并且在本地执行此调用,就好像它调用了@local 接口???
【问题讨论】:
是否从在同一中调用远程@remote 接口 EJB-JAR 或 EAR 会使应用服务器使用 RMI/RMI-IIOP?
或者应用服务器会非常智能并且在本地执行此调用,就好像它调用了@local 接口???
【问题讨论】:
容器不应该进行真正的@local 调用,因为@local 调用通过引用传递,@remote 调用通过值传递。但是,容器可以优化 @remote 调用,以便不命中完整的 RMI/IIOP 网络堆栈。我记得 WebSphere 做过这样的“本地”优化,我无法与其他供应商交谈。
[历史:早在早期的 EJB3 之前的 WebSphere 版本中,就有一个选项可以启用“使 @remote 看起来像 @local”的道德等价物,但我认为以后的版本不会提供此功能。]
【讨论】:
@remote 和@local 注释我的会话bean 并使用@EJB DI 从同一个EAR 内部调用它,那么在这种情况下应用服务器的行为是什么?