gpt4 book ai didi

java - 返回本地或远程的决定

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:11 26 4
gpt4 key购买 nike

我有一个简单的 bean 声明如下

 @Local(LocalInt.class)
@Remote(RemoteInt.class)
@Stateless(name="name")
public MyEJB_Implementation {
//methods
}

如您所见,它是一个具有本地接口(interface)(用于本地客户端)和远程接口(interface)(用于远程客户端)的单个 bean。

客户端(远程和本地)按如下方式检索实例:

ctx = new InitialContext(environment);
ctx.lookup("name");

Container 如何决定它是否将交付实现 LocalInt 接口(interface)或 RemoteInt 接口(interface)的代理? (因为我为查找使用了完全相同的“名称”)。

我的意思是,JNDI 注册表是否以某种方式知道查找是在同一个 JVM 中还是从远程服务器完成的?

而且,这种区别(对于本地和远程调用)不会与“查找”的语义冲突吗? (应该有零个或一个对象为一个名称注册,在这种情况下似乎有 2 个对象(本地和远程)在同一个名称下)。

谢谢。

最佳答案

根据我的经验,当客户端位于同一个容器(EAR 或 WAR)中时,容器将返回local 接口(interface),而在容器外时,将返回remote 接口(interface).

我不确定它在 Java EE 规范中是否被规定为要求,但几乎所有标准容器都以这种方式运行(同样,根据我的经验)

关于java - 返回本地或远程的决定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14965402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com