Corba 命名服务

Posted

技术标签:

【中文标题】Corba 命名服务【英文标题】:Corba naming service 【发布时间】:2011-12-19 18:15:33 【问题描述】:

我需要一些帮助...

我必须将 ma Corba 服务器与一个 Java Web 服务通信... 所以我必须确定命名服务.. 对吗??

我杀死了端口 2809 中的 omniNames 并运行代码: tnameserv -ORBport 2809

给我

初始命名上下文: IOR:000000000000002b49444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e300000000000010000000000000096000102000000000a3132372e302e312e3100038400000045afabcb0000000020000f424000000001000000000000000200000008526f6f74504f41000000000d544e616d65536572766963650000000000000008000000010000000114000000000000020000000100000020000000000001000100000002050100010001002000010109000000010001010000000026000000020002 TransientNameServer:将初始对象引用的端口设置为:900 准备好了。

在我运行 server.py 并返回异常之后:

文件“server.py”,第 28 行,在 obj = orb.resolve_initial_references("NameService") 文件“/usr/lib/python2.7/dist-packages/omniORB/CORBA.py”,第 576 行,在 resolve_initial_references return _omnipy.orb_func.resolve_initial_references(self, identifier) omn​​iORB.CORBA.NO_RESOURCES: CORBA.NO_RESOURCES(omniORB.NO_RESOURCES_InitialRefNotFound, CORBA.COMPLETED_NO)

我要做什么?

【问题讨论】:

【参考方案1】:

我不是 Java 名称服务专家,但 Corba 规范的默认 orb 是 2809。 虽然 java 默认值为 900。您的名称服务从 900 开始,就像它告诉您的那样,但 omniorb 会在 2809 处查找它。

Web 说 tnameserv 的语法是:

tnameserv -ORBInitialPort 2809

【讨论】:

【参考方案2】:

首先在您的终端上运行此命令。 (请确保您已经安装了 JDK):

orbd -ORBInitialiPort 2809.

之后你必须运行服务器然后运行客户端。

【讨论】:

以上是关于Corba 命名服务的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中运行嵌入式 CORBA 命名服务

在 Java 中使用 Eclipse 为 CORBA IDL 启动命名服务

Corba COS 命名服务列出所有节点

org.omg.CORBA.OBJECT_NOT_EXIST 尝试获取根命名上下文“NameService”时

如何从 CORBA IOR 和 NamingContextExt 中提取服务器主机/IP? [爪哇]

CORBA 客户端有没有办法访问服务器 IOR 文件?