Java Corba NamingContextStub.resolve将找不到对象绑定我做错了什么?
第一次在这里问问题,如果太愚蠢或太简单,请道歉。 我正在学习CORBA,我正在编写一个使用对象和上下文绑定的简单客户机-服务器应用程序,但我在尝试解决对象绑定时遇到了这个错误,有人能告诉我我做错了什么吗Java Corba NamingContextStub.resolve将找不到对象绑定我做错了什么?,java,corba,Java,Corba,第一次在这里问问题,如果太愚蠢或太简单,请道歉。 我正在学习CORBA,我正在编写一个使用对象和上下文绑定的简单客户机-服务器应用程序,但我在尝试解决对象绑定时遇到了这个错误,有人能告诉我我做错了什么吗 IDL:omg.org/CosNaming/NamingContext/NotFound:1.0 at org.omg.CosNaming.NamingContextPackage.NotFoundHelper.read(Unknown Source) at or
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");
这为我解决了这个问题,根据前面的回答,您需要在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");
看起来您在NS中将对象绑定为
Alpha.Delta.IServ
,而在客户端尝试将对象解析为:Delta.IServ
,根据NS抛出的异常,NS显然找不到该对象。看起来您在NS中将对象绑定为Alpha.Delta.IServ
,在客户端中,您试图将对象解析为:Delta.IServ
,而NS显然无法根据NS抛出的异常找到该对象。非常感谢,这很有效,感谢您的时间。非常感谢,这很有效,感谢您的时间。