兼容 Java 类名

标签 java corba

我们有一个 Java 客户端,它使用 corba 调用多个第三方系统。这些是实现同一组接口(interface)的不同系统。我们获得了使用这些接口(interface)的库(jar 文件)。例如,这些库中的一个对象是

this.that.GeneralException

现在我们必须连接到另一个外部系统,但是他们通过引入更多的包级别更改了命名,例如:

org.example.this.that.GeneralException

我的猜测是,上面的类将被认为是完全不同的。所以我复制了旧客户端,切换到新库并根据新命名模式更改了引用。 由于缺乏新系统的测试环境,我将该客户端与其中一个旧系统连接起来。而且,令人惊奇的是,它运行良好。

这是与 corba 相关的东西还是我在这里遗漏了什么?

编辑

刚刚收到一位第三方开发人员的来信。实际上,这与 corba 没有任何关系。相反,他们试图保持系统的向后兼容性。因此,他们将新命名方案映射到旧命名方案,现在同时提供两种名称下的界面。

最佳答案

CORBA 的 stub 和骨架通常是通过 IDL 生成的。对于 Java 生成的 stub ,IDL 定义的一部分定义了包结构。通过更改客户端接口(interface)类的包结构,您基本上实现了 ORB 期望客户端和服务器之间的契约。您遇到的唯一问题是客户端 stub 引用了服务器上不存在的方法。

关于兼容 Java 类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561343/

相关文章:

java.lang.NoClassDefFoundError : org/omg/CORBA/InterfaceDef 错误

java - 重复类型转换

java - JComponent.setVisible() 在 OS X 上无法成功隐藏分隔符

java - Corba 非阻塞球体

java - Client.java :30: getThingToDo() in OtherPackage. TaskOperations 无法应用于(短)

java - 如何比较两个元素的等效性?

java - 将 CORBA 应用程序迁移到现代 Java 技术(Rest/SOAP/EJB)

java - 是否有可用的 Bloomier 过滤器的实现?

java - 为 A* 搜索计算 f_score[neighbor]

java - 范围报告在 Cucumber 4.7.1 中不起作用