gpt4 book ai didi

java - RMI 两次绑定(bind)相同的对象但呈现不同的接口(interface)

转载 作者:行者123 更新时间:2023-11-30 12:00:23 25 4
gpt4 key购买 nike

嘿伙计们,我有一个有趣的给你!

我有一个名为 Server 的对象,它实现了两个 RMI 接口(interface),CSCP 和 ISCP。我需要我的客户端能够在 RMI CSCP 接口(interface)上通信,但对 ISCP 接口(interface)一无所知,我需要其他服务器在 ISCP 接口(interface)上与其通信但对 CSCP 接口(interface)一无所知。到目前为止和我在一起吗?

基本上,目前我已将其设置为绑定(bind)两次,一次绑定(bind)到 rmiregistry 中的“ISCP”,一次绑定(bind)到“CSCP”。

但是,当客户端尝试绑定(bind)时(记住他们只知道 CSCP 接口(interface)),他们会收到一个异常,说他们找不到类 ISCP - 但他们应该不需要它。

那么,一个对象(服务器)如​​何在两个不同的 rmi 绑定(bind)上呈现两个不同的 RMI 接口(interface),使它们保持分离?

如果你能为我解决这个问题,你就是个天才 :D 如果我不够清楚,请告诉我!

最佳答案

我建议编写两个适配器类,一个实现ICSP,一个实现CSCP。这些适配器类中的每个方法都调用“真实”对象中的适当方法。

然后,您将这些适配器类中的每一个都绑定(bind)到 RMI,使用不同的名称,而不是绑定(bind)原始对象。客户可以根据他们拥有的接口(interface)检索他们想要的任何绑定(bind)对象。

即使只有一个接口(interface),这也是一种很好的做法,因为将业务对象与其通信的远程传输机制(在本例中为 RMI)分离通常是个好主意。必须导出两个远程接口(interface)使这种情况更加严重。

关于java - RMI 两次绑定(bind)相同的对象但呈现不同的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2045497/

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