第一次在这里提问,如果问题太愚蠢或简单,请见谅。 我正在学习 CORBA,并且正在使用对象和上下文绑定(bind)编写一个简单的客户端服务器应用程序,但是在尝试解析对象绑定(bind)时遇到此错误,任何人都可以告诉我我做错了什么吗?:
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);
最佳答案
这为我解决了这个问题,根据之前的回复,您需要在 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");
关于java - Corba NamingContextExtStub.resolve 找不到对象绑定(bind)我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35518371/