//Hello.idl
module HelloApp
{
interface Hello{
string sayHello();
};
};//HelloServer.java
import HelloApp.*;
import java.util.*;import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;public class HelloServer{

public static void main(String[] args){
try{
//ORB orb = ORB.init(args, null);
Properties props = new Properties();
props.put("org.omg.CORBA.ORBInitialPort", "1050");
ORB orb = ORB.init(args, props);

HelloServant helloRef = new HelloServant();
orb.connect(helloRef);

org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContext ncRef = NamingContextHelper.narrow(objRef);

//registeering the servant with the name server
NameComponent nc = new NameComponent("Hello", "");
NameComponent path[] = {nc};
ncRef.rebind(path, helloRef);

java.lang.Object sync = new java.lang.Object();
synchronized(sync){
sync.wait();
}

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

}class HelloServant extends _HelloImplBase{
public String sayHello(){
return "\nHello world!!\n";
}
}
//HelloClient.java
import HelloApp.*;
import org.omg.CosNaming.*;
import org.omg.CORBA.*;public class HelloClient{
public static void main(String[] args){
try{
ORB orb = ORB.init(args, null);
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContext ncRef = NamingContextHelper.narrow(objRef);
NameComponent nc = new NameComponent("Hello","");
NameComponent path[] = {nc};
Hello helloRef = HelloHelper.narrow(ncRef.resolve(path));

String hello = helloRef.sayHello();
System.out.println(hello);


}catch(Exception e){
System.out.println("ERROR: " + e);
e.printStackTrace(System.out);
}
}
}运行HelloServer时出现:
ERROR: org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation com.inprise.vbroker.orb.ORB  minor code: 0  completed: No
org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation com.inprise.vbroker.orb.ORB  minor code: 0  completed: No
at org.omg.CORBA.ORB.create_impl(ORB.java:286)
at org.omg.CORBA.ORB.init(ORB.java:328)
at HelloServer.main(HelloServer.java:11)
谢谢帮忙

解决方案 »

  1.   

    首先抱歉,本人最近比较忙,所以一直没有上来,到现在才来解决你的问题
    你按照下面说的看行不行,把以下代码:
    //ORB orb = ORB.init(args, null);
    Properties props = new Properties();
    props.put("org.omg.CORBA.ORBInitialPort", "1050");
    ORB orb = ORB.init(args, props);
    改成:
    ORB orb = ORB.init(args, props);
    然后,启动NameService
    tnameserv -ORBInitialPort 1050
    接着运行服务器端程序:
    java HelloServer -ORBInitialPort 1050
    然后运行客户端。
    java HelloClient -ORBInitialPort 1050如果不行,那你告诉我你用的jdk是什么,在什么平台下等一些信息,希望能对你有一些帮助
                
                
      

  2.   

    我原来用jdk1.3,后来用jdk1.2, 旧可以了.
      

  3.   

    如果你用jdk1.3的话,不要用idltojava而改用jdk1.3自带的idlj来编译idl,我想就不会出此问题了。