2013-11-04 52 views
2

我是CORBA和JacORB的新手。我正在用我的第一個使用CORBA和JacORB的Hello World應用程序掙扎。問題與JacORB連接?

這是我得到了最新的錯誤:

Nov 04, 2013 9:52:19 AM com.sun.corba.se.impl.transport.SocketOrChannelConnectionIm <init> 
WARNING: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CLEAR_TEXT;  hostname: localhost; port: 7070" 
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No 

這是我的服務器導致的錯誤:

Properties props = new Properties(); 
    props.put("org.omg.CORBA.ORBInitialPort","7070"); 
    props.put("org.omg.CORBA.ORBInitialHost","localhost"); 
    ORB orb = ORB.init(args, props); 
    try { 
     // 
     POA poa = POAHelper.narrow(orb 
       .resolve_initial_references("RootPOA")); 
     poa.the_POAManager().activate(); 

     // Servant 
     HelloVnImpl hello = new HelloVnImpl(); 
     // get servant reference 
     Object o = poa.servant_to_reference(hello); 
     HelloVn hVnRef = HelloVnHelper.narrow(o); 

     // Get root naming context 
     Object objRef = orb.resolve_initial_references("NameService");//Error 
     NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); 

環顧四周,在互聯網上,這個問題顯然是我的名稱服務,但我想我開始吧。

C:\Users\Paul>ns -ORBInitRef.NameService=corbaloc::localhost:7070/NameService 
Nov 04, 2013 9:38:25 AM org.jacorb.config.JacORBConfiguration <init> 
WARNING: no properties found for configuration jacorb 
Nov 04, 2013 9:38:25 AM org.jacorb.orb.ORBSingleton <init> 
INFO: created ORBSingleton 
Nov 04, 2013 9:38:27 AM org.jacorb.orb.giop.CodeSet getTCSDefault 
WARNING: Warning - unknown codeset (Cp1252) - defaulting to ISO-8859-1 
Nov 04, 2013 9:38:27 AM org.jacorb.naming.NameServer main 
INFO: NS up 
Nov 04, 2013 9:38:27 AM org.jacorb.orb.ORB run 
INFO: ORB run 

現在,我不知道下一步該做什麼。請給我一個建議。謝謝。 :)

UPDATE:

這行代碼給我一個空值:

System.out.println(System.getProperty("org.omg.CORBA.ORBClass")); 

是什麼意思?它是否告訴我,我的域名服務器有問題? 希望能看到你的建議。由於

+0

有人請給我幾分鐘嗎?謝謝。 – Paul

+0

我只是更新了問題。 – Paul

+0

這正是我得到的症狀,如果orbd沒有運行。你確定你有所有的端口等是正確的嗎? – EJP

回答

1

有一對夫婦與您設置您的服務器和命名服務(NS)的方式問題:您在服務器代碼中設置

1)這兩個屬性(org.omg.CORBA.ORBInitialPortorg.omg.CORBA.ORBInitialHost)不JacORB屬性。假設你希望你的服務器偵聽端口7070的請求,那麼你要這樣設置「OAAddress」屬性:

props.put("OAAdress", "iiop://localhost:7070");

2)選項-ORBInitRef.NameService=corbaloc::localhost:XXX/NameService應該是服務器定位NS是不是NS。請注意,「XXX」是NS的監聽端口,不應該是「7070」。

我會建議你看看包含工作服務器和客戶端的hello demo,它們要簡單得多。