2016-07-17 3 views
2

서버에서 사전 알림 이벤트를 받기 위해 java (jdk5) corba 클라이언트를 개발했습니다. 내 아래 코드는 단일 네트워크 카드로 잘 작동합니다. 클라이언트 시스템에 여러 네트워크 인터페이스가있는 경우 항상 잘못된 네트워크 카드를 선택하고 클라이언트에 연결하지 못했습니다. orb에 -ORBEndpoint 인수를 지정하여 시도했습니다. 그러나 여전히 성공하지 못했습니다.여러 네트워크 인터페이스에서 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을 사용해야합니다.

어떤 CORBA Java 구현을 사용하고 있습니까? Java 자체와 함께 번들로 제공되는 CORBA 구현에는 많은 한계가 있습니다.

체크 아웃을 제안합니다. JacORB http://www.jacorb.org/ JacORB의 또 다른 자바 구현은 아직 활성화되어 사용되고 있습니다.

최신 JacORB가 Java 5에서 작동하는지 확실하지는 않지만 조사를해야합니다.

일단 JacORB 설정이 완료되면 해당 설명서를 살펴보십시오. http://www.jacorb.org/documentation.html 특히 '수신 대기 엔드 포인트'및 '네트워크 구성'섹션에 있습니다. 거기에서 필요한 대답을 제공해야합니다.

1

먼저 포트 번호는 지정하지 말고 IP 주소 만 지정하십시오. 포트 번호는 ORB에 의해 무작위로 선택됩니다.

그럼 당신이 자바 속성을 구성 할 수 있습니다

-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는 Sun/Oracle 용, omniORB의에 대한 구성하지 Java ORB.

관련 문제