CORBA ORB 运行时定义本地 IP 接口使用

Posted

技术标签:

【中文标题】CORBA ORB 运行时定义本地 IP 接口使用【英文标题】:CORBA ORB runtime define local IP interface usage 【发布时间】:2012-10-17 15:59:29 【问题描述】:

我们有一个现有的应用程序,它设置了一个 CORBA ORB 运行时环境作为客户端。

目前我们没有指定要使用的任何本地接口(IP/以太网),并且运行时似乎在我们的本地机器上获得了一些默认接口。使用的机器是带有 Solaris 操作系统的 Oracle。

这里使用的ORB运行环境是Java 7 JDK内置的ORB。

有没有什么方法可以通过ORB.init(...)的某些属性明确指出某个本地IP接口应该被使用?

【问题讨论】:

出于什么目的?默认是监听所有接口,即 IPv4 中的 0.0.0.0。 这是一个特定于 ORB 的设置,每个 CORBA 供应商都有不同的规定。您应该查阅 Java 7 文档并查看可以为传输接口绑定设置的 ORB 属性。 【参考方案1】:

对于 Oracle JDK 的 ORB,它是

 -Dcom.sun.CORBA.ORBServerPort=10023 -Dcom.sun.CORBA.ORBServerHost=1.2.3.4 

在命令行或

    Properties prop = new Properties();
    prop.put("com.sun.CORBA.ORBServerPort", "10000");
    prop.put("com.sun.CORBA.ORBServerHost", "11.1.1.11");
    ORB orb = ORB.init(args, prop);

如果以编程方式使用。

【讨论】:

如果有人还在做 CORBA 并使用 glassfish-corba-orb,属性应该有 com.sun.corba.ee 前缀而不是 com.sun.CORBA

以上是关于CORBA ORB 运行时定义本地 IP 接口使用的主要内容,如果未能解决你的问题,请参考以下文章

JAVA与CORBA通信接口开发

CORBA 应用程序必须以与 ORB 相同的语言实现吗?

org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService") 上的错误;

Corba IOR 解码

使用 CORBA 混淆 Android 应用程序

CORBA 错误:方法中的 ORB 初始化