www.pudn.com > jCorba.rar > HelloServer.java


package jcorba; 
 
import HelloApp.*; 
import org.omg.CosNaming.*; 
import org.omg.CosNaming.NamingContextPackage.*; 
import org.omg.CORBA.*; 
import java.io.*; 
 
public class HelloServer { 
  public static void main(String args[]) 
  { 
    try 
    { 
      ORB orb = ORB.init(args, null);                   //创建和初始化一个ORB实例 
      HelloServant helloRef = new HelloServant();       //创建远程方法的实例 
      orb.connect(helloRef);                            //将ORB实例与服务对象连接 
      //以下两条语句实现取得命名服务初始情况的对象引用并传入参数的功能 
      org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); 
      NamingContext ncRef = NamingContextHelper.narrow(objRef); 
      //以下两条语句实现在命名服务中插入CORBA对象引用并将其与一个名称关联的功能 
      NameComponent nc = new NameComponent("Hello", ""); 
      NameComponent path[] = {nc}; 
      ncRef.rebind(path, helloRef);             //将此远程方法的实例与对象引用绑定 
      System.out.println("Server ready"); 
      java.lang.Object sync = new java.lang.Object();       //等待来自客户机的调用 
      synchronized (sync) 
      { 
         sync.wait(); 
      } 
    } 
    catch (Exception e) 
    { 
      System.out.println("ERROR: " + e);                    //捕捉异常情况 
    } 
  } 
}