⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java源码:corba入门.txt

📁 学习(编程技巧_编程知识_程序代码),是学习编程不可多得的学习精验
💻 TXT
字号:
Java源码:CORBA入门
 

--------------------------------------------------------------------------------
 
第八军团 时间:2004-1-23 15:43:38 
   
Below is a simple example of a CORBA program 
download the source file  

1. produce a idl file like this 
   hello.idl 
   module HelloApp { 
     interface Hello    {          
         string sayHello(); 
    }; 
  }; 

2. produce stub and skeleton files through idltojava.exe 
   idltojava hello.idl 
   idltojava is now named as idlj.exe and is included in the JDK.  

3. write a server program like this  

// HelloServer.java  
   
import HelloApp.*; 

import org.omg.CosNaming.*; 
import org.omg.CosNaming.NamingContextPackage.*; 
import org.omg.CORBA.*; 

import java.io.*; 
class HelloServant extends _HelloImplBase  
{ 
    public String sayHello() 
    { 
       return "\nHello world !!\n";  
    }    
   
} 

public class HelloServer { 

    public static void main(String args[]) 
    { 
try{ 
    // create and initialize the ORB 
    ORB orb = ORB.init(args, null); 

    // create servant and register it with the ORB 
    HelloServant helloRef = new HelloServant(); 
    orb.connect(helloRef); 

    // get the root naming context 
    org.omg.CORBA.Object objRef =  
orb.resolve_initial_references("NameService"); 
    NamingContext ncRef = NamingContextHelper.narrow(objRef); 

    // bind the Object Reference in Naming 
    NameComponent nc = new NameComponent("Hello", ""); 
    NameComponent path[] = {nc}; 
    ncRef.rebind(path, helloRef); 

    // wait for invocations from clients 
            java.lang.Object sync = new java.lang.Object(); 
            synchronized (sync) { 
                sync.wait(); 
            } 

} catch (Exception e) { 
    System.err.println("ERROR: " + e); 
    e.printStackTrace(System.out); 
} 
    } 
}     

4. write a client program like this 
// HelloClient.java 
import HelloApp.*; 
import org.omg.CosNaming.*; 
import org.omg.CORBA.*; 

public class HelloClient  
{ 
    public static void main(String args[]) 
    { 
try{ 
    // create and initialize the ORB 
    ORB orb = ORB.init(args, null); 

            // get the root naming context 
            org.omg.CORBA.Object objRef =  
orb.resolve_initial_references("NameService"); 
            NamingContext ncRef = NamingContextHelper.narrow(objRef); 
            // test 
            System.out.println("OK..");                 
            // resolve the Object Reference in Naming 
            NameComponent nc = new NameComponent("Hello", ""); 
            NameComponent path[] = {nc}; 
            Hello helloRef = HelloHelper.narrow(ncRef.resolve(path)); 

    // call the Hello server object and print results 
           //String oldhello = helloRef.lastMessage(); 
           //System.out.println(oldhello); 
    String Hello = helloRef.sayHello(); 
    System.out.println(Hello); 

} catch (Exception e) { 
    System.out.println("ERROR : " + e) ; 
    e.printStackTrace(System.out); 
} 
    } 
} 

5. complie these files 

   javac *.java HelloApp/*.java 

6. run the application 
    
  a. first you've to run the Name Service prior to the others likethis 
     c:\>tnameserv 
  b. run server 
     c:\>java HelloServer 
  c. run client  
     c:\>java HelloClient 
  
 
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -