Corba NamingContextExtStub.resolve将找不到对象绑定我做错了什么?

时间:2016-02-20 02:20:32

标签: java corba

第一次在这里问一个问题,如果它过于愚蠢或简单而道歉。 我正在学习CORBA,我正在使用对象和上下文绑定编写一个简单的客户端服务器应用程序但是在尝试解析对象绑定时遇到此错误,有人能让我知道我做错了什么吗?:

IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
        at org.omg.CosNaming.NamingContextPackage.NotFoundHelper.read(Unknown Source)
        at org.omg.CosNaming._NamingContextExtStub.resolve(Unknown Source)
        at MyHelloClient.main(MyHelloClient.java:60)

服务器代码:

        org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");

        NamingContext rootCtx = NamingContextHelper.narrow(objRef);

        nc[0] = new NameComponent("Alpha", "Context");
        NamingContext alphaCtx = rootCtx.bind_new_context(nc);

        nc[0] = new NameComponent("Delta", "Context");
        NamingContext deltaCtx = alphaCtx.bind_new_context(nc);

        nc[0] = new NameComponent("Iota", "Context");
        NamingContext iotaCtx = deltaCtx.bind_new_context(nc);

        nc[0] = new NameComponent("IServ", "Object");
        deltaCtx.bind(nc, iServ);

客户代码:

        org.omg.CORBA.Object objRefClient = orb.resolve_initial_references("NameService");
        rootCtx = NamingContextExtHelper.narrow(objRefClient);

        NameComponent nc[] = new NameComponent[2];
        nc[0] = new NameComponent("Delta", "Context");
        nc[1] = new NameComponent("IServ", "Object");

        org.omg.CORBA.Object objRefHello = rootCtx.resolve(nc);

1 个答案:

答案 0 :(得分:0)

这解决了我的问题,按照之前的回复,您需要在Delta和IServ之前指定Alpha

NameComponent nc[] = new NameComponent[3];

nc[0] = new NameComponent("Alpha", "Context");
nc[1] = new NameComponent("Delta", "Context");
nc[2] = new NameComponent("IServ", "Object");