我是从CORBA 网络管理规范工作的,我想获得IOR文件,其中包含连接到CORBA服务所需的信息。有一些关于如何从我发布的链接中获取"ExternalNameService.ior“文件的信息,但我不知道该怎么做。基本上,我有一个想法,我想要做的是:
我被困的部分是获得IOR。有什么想法吗?
编辑
本文简单地展示了命名服务的名称,由于某些原因我无法连接到这个服务.这是我最大的问题。如果我试图连接到本地名称服务,但爱立信服务失败,下面的代码可以工作。我提供正确的ORBInitialPort和ORBInitialHost作为命令行参数。
ORB orb = ORB.init(args, null);
String corbalocURL = "ExternalNameService";
// get the root naming context
org.omg.CORBA.Object objRef = orb.resolve_initial_references(corbalocURL);
// Use NamingContextExt instead of NamingContext. This is
// part of the Interoperable naming Service.
System.out.println(objRef);
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
System.out.println(ncRef);这些都是我正在犯的错误:
ERROR : org.omg.CORBA.OBJECT_NOT_EXIST: vmcid: 0x0 minor code: 0 completed: No
org.omg.CORBA.OBJECT_NOT_EXIST: vmcid: 0x0 minor code: 0 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at java.lang.Class.newInstance0(Class.java:374)
at java.lang.Class.newInstance(Class.java:327)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:914)
at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_0.getSystemException(ReplyMessage_1_0.java:111)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:590)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:459)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:355)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:147)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.invoke(BootstrapResolverImpl.java:114)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.list(BootstrapResolverImpl.java:151)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.list(CompositeResolverImpl.java:55)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.list(CompositeResolverImpl.java:55)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.list(CompositeResolverImpl.java:55)
at com.sun.corba.se.impl.orb.ORBImpl.list_initial_services(ORBImpl.java:1143)
at HelloClient.main(HelloClient.java:22)发布于 2013-05-30 03:05:18
你永远不应该做第二件事,CORBA是为了对你隐藏网络细节。此外,IORs并不总是绑定到TCP/IP,因此可能甚至不包含主机或端口(尽管它们几乎总是这样)。
在深入了解CORBA之前,我建议您多了解一些CORBA。这是一个很好的入门网站。
IORs是服务器对象的“句柄”,它是用来调用它们所引用的远程资源的不透明的数据块。它们就像人们的电话号码--一种能够进行交流的手段。
如果文件中没有IOR字符串,您可能可以在某个地方的命名服务中找到IOR (它就像IOR的"White Pages“目录)。
https://stackoverflow.com/questions/16821565
复制相似问题