具有多个网络接口的CORBA客户端 - 绑定到特定的网络接口

时间:2016-07-17 00:59:15

标签: java corba orb

我开发了java(jdk5)corba客户端,用于从服务器接收NotificationIRP主动事件。我的下面的代码与单网卡工作正常。如果客户端系统有多个网络接口,则回叫总是选择错误的网卡并且无法连接到客户端。我试过在orb中指定-ORBEndpoint参数。但仍然没有成功。

String[] args = new String[2];

args[0]="-ORBEndpoint";
args[1]="iiop://10.106.90.50:9090";   // client eth0              
ORB orb = ORB.init(args, null);

2 个答案:

答案 0 :(得分:2)

首先,您不应指定任何端口号(例如,如果该端口已被另一个进程绑定),而只指定IP地址。端口号应由ORB从可用端口随机选择。

然后您可以配置此Java属性:

-Dcom.sun.CORBA.ORBServerHost=<IP address>

或者如果你真的想要硬编码:

Properties p = new Properties();
p.put("com.sun.CORBA.ORBServerHost", "10.106.90.50");
ORB orb = ORB.init(args, p);

ORBEndpoint 是omniORB的配置,不适用于Sun / Oracle Java ORB。

答案 1 :(得分:0)

Java 5早已停止生命周期。您现在应该使用Java 8.

您使用的是哪种CORBA Java实现?与Java捆绑在一起的CORBA实现有很多限制。

我建议您查看JacORB http://www.jacorb.org/这是JacORB的另一个Java实现,它仍处于活动状态并正在使用。

我不确定最新的JacORB是否适用于Java 5,你需要在那里做一些研究。

设置好JacorB后,请查看他们的文档。 http://www.jacorb.org/documentation.html特别是在“收听端点”和“网络配置”部分。它应该从那里提供你需要的答案。