Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得CORBA IOR_Corba - Fatal编程技术网

如何获得CORBA IOR

如何获得CORBA IOR,corba,Corba,我正在使用CORBA,我希望获得IOR文件,其中包含连接到CORBA服务所需的信息。有一些关于如何从我发布的链接中获取“ExternalNameService.ior”文件的信息,但我不确定该怎么做。基本上,我对我想做的事情有一个想法,那就是: 获取IOR 对其进行解码,以便获得CORBA服务的IP和端口 编译IDL并使用它们连接到远程资源 我被困的部分是获得IOR。有什么想法吗 编辑 我试图提供我自己的探测器实现…而不是使用IBM的。这篇文章简单地展示了命名服务的名称,由于某种原因,我无法连接

我正在使用CORBA,我希望获得IOR文件,其中包含连接到CORBA服务所需的信息。有一些关于如何从我发布的链接中获取“ExternalNameService.ior”文件的信息,但我不确定该怎么做。基本上,我对我想做的事情有一个想法,那就是:

  • 获取IOR
  • 对其进行解码,以便获得CORBA服务的IP和端口
  • 编译IDL并使用它们连接到远程资源 我被困的部分是获得IOR。有什么想法吗

    编辑

    我试图提供我自己的探测器实现…而不是使用IBM的。这篇文章简单地展示了命名服务的名称,由于某种原因,我无法连接到它……这是我最大的问题。如果我尝试连接到本地名称服务,但爱立信服务失败,那么下面的代码可以工作。我提供了正确的
    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)
    
    你永远不应该这样做。CORBA的设计目的是向您隐藏网络细节。此外,IOR并不总是绑定到TCP/IP,因此甚至可能不包含主机或端口(尽管它们几乎总是这样)

    我建议在进一步研究CORBA之前,多了解一些CORBA。是一个很好的介绍网站

    IOR是服务器对象的“句柄”,意味着是不透明的数据块,您只需使用这些数据块调用它们所引用的远程资源。它们就像人们的电话号码——一种沟通的手段


    如果某个文件中没有IOR字符串,则可以在某个运行的命名服务中找到IOR(它就像IOR的“白页”目录)

    对于链接到的“probe”实现,您似乎不需要自己执行此操作—文档中指出,您只需要设置一个指向NameService或服务于该服务的URL的属性IOR@GreyBeardedGeek请阅读我的更新,如果你需要更多信息,请告诉我。谢谢你的帮助。老实说,我几乎很抱歉我跳到这里来了——我已经有好几年没有用CORBA做过任何事情了,显然我在这里有点力不从心。但是,很明显,您的命名服务器存在问题-我可以建议将“CORBA.OBJECT\u NOT\u EXIST”插入您最喜欢的搜索引擎吗?谢谢您的反馈。我会在提出解决方案时回信……以防有人感兴趣。您是否设法获得IOR?我指的是com.sun.corba.se.spi.ior.ior对象。另一个E///家伙(艾尔玛)。另外,通过RSG的Corba在AFAIK是不可能的。