首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取CORBA IOR

如何获取CORBA IOR
EN

Stack Overflow用户
提问于 2013-05-29 18:44:08
回答 1查看 2.9K关注 0票数 1

我是从CORBA 网络管理规范工作的,我想获得IOR文件,其中包含连接到CORBA服务所需的信息。有一些关于如何从我发布的链接中获取"ExternalNameService.ior“文件的信息,但我不知道该怎么做。基本上,我有一个想法,我想要做的是:

  1. 获取IOR。
  2. 对其进行解码,以便获得CORBA服务的IP和端口。
  3. 编译IDL并使用它们连接到远程资源。

我被困的部分是获得IOR。有什么想法吗?

编辑

本文简单地展示了命名服务的名称,由于某些原因我无法连接到这个服务.这是我最大的问题。如果我试图连接到本地名称服务,但爱立信服务失败,下面的代码可以工作。我提供正确的ORBInitialPortORBInitialHost作为命令行参数。

代码语言:javascript
复制
  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);

这些都是我正在犯的错误:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2013-05-30 03:05:18

你永远不应该做第二件事,CORBA是为了对你隐藏网络细节。此外,IORs并不总是绑定到TCP/IP,因此可能甚至不包含主机或端口(尽管它们几乎总是这样)。

在深入了解CORBA之前,我建议您多了解一些CORBA。是一个很好的入门网站。

IORs是服务器对象的“句柄”,它是用来调用它们所引用的远程资源的不透明的数据块。它们就像人们的电话号码--一种能够进行交流的手段。

如果文件中没有IOR字符串,您可能可以在某个地方的命名服务中找到IOR (它就像IOR的"White Pages“目录)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16821565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档