我们有一个Java客户端,它使用corba来调用多个第三方系统。这些是实现相同接口集的不同系统。我们提供了库(jar文件)来使用这些接口。例如,这些库中的一个对象是
this.that.GeneralException
现在我们必须连接到另一个外部系统,但他们通过引入更多的包级别来改变命名,例如:
org.example.this.that.GeneralException
我的猜测是,上面的类会被认为是完全不同的。所以我制作了旧客户端的副本,切换到新库并根据新的命名符号更改了引用。 由于缺乏新系统的测试环境,我将该客户端与其中一个旧系统连接起来。而且,从根本上说,它运作得很好。
这与corba有关或我在这里缺少什么?
修改
刚收到一位第三方开发者的说明。实际上,这与corba没有任何关系。相反,他们试图保持其系统的向后兼容性。因此,他们将新命名方案映射到旧命名方案,现在同时提供两个名称下的接口。
答案 0 :(得分:3)
CORBA的存根和骨架通常是通过IDL生成的。 IDL定义的一部分定义了Java生成的存根的包结构。通过更改客户端接口类的包结构,您基本上完成了ORB在客户端和服务器之间预期的合同。您遇到的唯一问题是客户端存根引用服务器上不存在的方法。
答案 1 :(得分:0)
实际上,这与corba没有任何关系。相反,他们试图保持其系统的向后兼容性。因此,他们将新命名方案映射到旧命名方案,现在同时提供两个名称下的接口。