jacorb 中的 InvalidName 异常

Posted

技术标签:

【中文标题】jacorb 中的 InvalidName 异常【英文标题】:InvalidName exception in jacorb 【发布时间】:2013-02-14 10:34:20 【问题描述】:

我正在使用 Jacorb 来实现 corba。我已经在端口 900 上启动了 NS。 当我尝试启动服务器时,出现以下异常

D:\eclipse_workspace\WorkSpace\corba\bin>jaco  hello.MyServer -DORBInitRef.NameService=jacorb::localhost:900
org.jacorb.orb.ORB
Feb 14, 2013 4:00:07 PM org.jacorb.config.JacORBConfiguration <init>
WARNING: no properties found for configuration jacorb
Feb 14, 2013 4:00:07 PM org.jacorb.orb.ORBSingleton <init>
INFO: created ORBSingleton
Exception in thread "main" org.omg.CORBA.ORBPackage.InvalidName:    IDL:omg.org/CORBA/ORB/InvalidName:1.0
    at org.jacorb.orb.ORB.resolve_initial_references(ORB.java:1371)
    at hello.MyServer.main(MyServer.java:15)

代码如下

public static void main(String[] args) throws Exception
    Properties props = new Properties();
    props.setProperty("ORBInitRef","NameService=jacorb::localhost:900");
    System.out.println(System.getProperty("org.omg.CORBA.ORBClass"));
    org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, props);

    org.omg.CORBA.Object o = orb.resolve_initial_references("NameService");
    NamingContextExt nc = NamingContextExtHelper.narrow( o );


谁能告诉我这里有什么问题?

【问题讨论】:

我以前从未见过带有 jacorb 前缀的 corba url:-DORBInitRef.NameService=jacorb::localhost:900 您是否尝试将其更改为 corbaloc url:-DORBInitRef.NameService=corbaloc::localhost:900 【参考方案1】:

NameService 引用必须是对包含 IOR 的文件的引用,例如 file://tmp/NS_Ref 或 URL,例如 http://www.testme.not/NS_Ref 或只是一个 corbaloc/corbaname URL,例如 corbaloc:iiop:1.2@host1:3075/NameService

最后一个是最常见的。例如,您可以将其缩短为corbaloc::localhost:900/NameService

有关 corbaloc 的更多信息,请访问http://www.ciaranmchale.com/corba-explained-simply/the-corbaloc-and-corbaname-urls.html

【讨论】:

以上是关于jacorb 中的 InvalidName 异常的主要内容,如果未能解决你的问题,请参考以下文章

CORBA - JacORB:使用固定端口生成 IOR?

命名服务启动 Jacorb

使用带有 SSL 的 JacORB (Java/CORBA) 的客户端策略错误

本地 JacORB 调用:org.omg.CORBA.OBJECT_NOT_EXIST

带有 JacORB 客户端超时策略的“org.omg.CORBA.BAD_OPERATION:无法提取 ulonglong”

如何访问客户端文件中的序列?