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 异常的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 SSL 的 JacORB (Java/CORBA) 的客户端策略错误
本地 JacORB 调用:org.omg.CORBA.OBJECT_NOT_EXIST
带有 JacORB 客户端超时策略的“org.omg.CORBA.BAD_OPERATION:无法提取 ulonglong”