我开发了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);
答案 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特别是在“收听端点”和“网络配置”部分。它应该从那里提供你需要的答案。