【问题标题】:CORBA server on JVM 1.2 and client on 1.3JVM 1.2 上的 CORBA 服务器和 1.3 上的客户端
【发布时间】:2011-08-10 09:10:16
【问题描述】:

我有一个在 JVM 1.2 上编译和运行的 corba 服务器。我正在使用 java IDL 来编译 IDL 文件并生成所需的存根和骨架,并使用 NameService 来启动服务器。如果在同一系统上运行客户端,我可以连接到服务器,但如果我尝试在 JVM 1.3 上的另一台计算机上运行客户端,我将无法连接到服务器。

但是,我可以在两台不同的机器上同时运行 JVM 1.2,这些是我正在使用的命令

在服务器上
tnameserv -ORBInitialPort 2000
java HelloServer -ORBInitialPort 2000 -ORBInitialHost myhost


在客户端机器上
java HelloClient -ORBInitialPort 2000 -ORBInitialHost myhost

但是我在客户端收到以下错误。我参考了这个网站上的例子http://download.oracle.com/javase/1.3/docs/guide/idl/GShome.html

错误堆栈跟踪
ERROR : org.omg.CORBA.COMM_FAILURE: minor code: 1398079490 completed: No org.omg.CORBA.COMM_FAILURE: minor code: 1398079490 completed: No at com.sun.corba.se.internal.iiop.IIOPConnection.writeLock(IIOPConnection.java:956) at com.sun.corba.se.internal.iiop.IIOPConnection.send(IIOPConnection.java:1017) at com.sun.corba.se.internal.iiop.IIOPOutputStream.invoke(IIOPOutputStream.java:71) at com.sun.corba.se.internal.iiop.ClientRequestImpl.invoke(ClientRequestImpl.java:82) at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:153) at com.sun.corba.se.internal.corba.InitialNamingClient.resolve(InitialNamingClient.java:195) at com.sun.corba.se.internal.corba.InitialNamingClient.cachedInitialReferences(InitialNamingClient.java:260) at com.sun.corba.se.internal.corba.InitialNamingClient.resolve_initial_references(InitialNamingClient.java:183) at com.sun.corba.se.internal.corba.ORB.resolve_initial_references(ORB.java:1465) at HelloClient.main(HelloClient.java:17)

【问题讨论】:

    标签: java corba idl


    【解决方案1】:

    考虑到 Java1.5 已经停产两年,1.3 将近五年,而 1.2 我不知道还有多远,我强烈建议如果您是早期采用者,您可以在最新版本(即 1.6 或 1.7)上同时运行客户端和服务器,但显然您不是 ;-)

    【讨论】:

    • 感谢您的回答,我知道 JVM1.2 已达到其 EOL,但我正在为现有应用程序在 JVM 1.2 上开发的客户端开发接口。所以我在 JVM 1.6 上部署我的应用程序,而客户端在 1.2 上的现有应用程序需要与 1.6 通信。我本可以使用 RMI,但要求是使我的应用程序成为通用接口,这就是我使用 corba 的原因。还有其他 corba 库,例如 jacORB,但仅支持 java 1.4 和更高版本。所以我只是想知道是否可以使用 corba 从 java 1.2/1.3 到 1.6 进行通信
    • @Rakesh 这应该是可能的,但是您正在处理几乎最极端的 JVM 间互操作性情况。非常值得在 1.6 上尝试您的客户的应用程序。他们将不得不迁移一段时间,而且他们应该在几年前就这样做了。
    • 问题是我的客户不想迁移到更高的 JVM,因为他们必须重新设计现有的应用程序。谢谢你的建议。我会尝试说服我的客户迁移到当前版本的 JVM
    • @Ralesh 您的客户所要做的就是在当前的 JVM 上对其进行测试。如果它有效,它们就完成了。如果没有,这是极不可能的,他们有一个小的调试练习。当然不需要重新设计。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 2012-10-01
    • 2012-11-18
    相关资源
    最近更新 更多