2016-07-17 3 views
2

У меня есть java (jdk5) клиент corba для получения активных действий NotificationIRP с сервера. Мой код ниже работает с единой сетевой картой. если клиентская система имеет несколько сетевых интерфейсов, всегда переадресовывайте неправильную сетевую карту и не удается подключиться к клиенту. Я попытался, указав -ORBEndpoint аргумент в orb. Но до сих пор нет успеха.проблема обратного вызова клиента corba с несколькими сетевыми интерфейсами. Как привязать к определенному сетевому интерфейсу

 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

Java 5 уже давно закончил жизненный цикл. Вы должны использовать Java 8.

Какую реализацию Java CORBA вы используете? Реализация CORBA, связанная с самой Java, имеет множество ограничений.

Я предлагаю вам проверить JacorB http://www.jacorb.org/ Это еще одна реализация Java JacorB, которая по-прежнему активна и используется.

Я не уверен, что последний JacorB будет работать с Java 5, вам нужно будет провести там некоторое исследование.

Как только у вас установлена ​​настройка JacorB, взгляните на их документацию. http://www.jacorb.org/documentation.html В частности, в разделе «Listen Endpoints» и «Network Configuration». Он должен предоставить вам ответ, который вам нужен.

1

Прежде всего, вы не должны указывать номер порта, а только 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.

Смежные вопросы