JacORB连接问题?

时间:2013-11-04 03:08:51

标签: java corba

我是CORBA和JacORB的新手。我正在使用CORBA和JacORB在我的第一个Hello World应用程序上苦苦挣扎。

这是我收到的最新错误:

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

现在,我不知道接下来要做什么。请给我一个建议。谢谢。 :)

更新:

这个行代码给我一个空值:

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

这是什么意思?它告诉我我的名字服务器有问题吗? 希望看到你的建议。感谢

1 个答案:

答案 0 :(得分: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,它们更简单。