在 Java 中运行嵌入式 CORBA 命名服务
Posted
技术标签:
【中文标题】在 Java 中运行嵌入式 CORBA 命名服务【英文标题】:Run an embedded CORBA naming service in Java 【发布时间】:2012-02-07 15:47:52 【问题描述】:是否可以使用 Java 1.5 CORBA 服务器应用程序运行嵌入式命名服务,以便可以通过“corbaloc”简写 URL 而不是长 IOR 引用来访问其服务对象,但是 没有运行任何其他守护进程,比如 ORBD?
例如。 corbaloc::127.0.0.1:12345/MyService
我注意到在 Java 1.6+ 中有一个 TransientNameService
类,但我不确定它是不是我认为的那样..
任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:在 Sun ORB 中,corbaloc:
引用被视为初始引用。它们不需要任何命名服务,而是由 ORB 本身解析。
以下是注册初始引用的方法:
Properties props = new Properties();
props.put("com.sun.CORBA.POA.ORBPersistentServerPort", "12345");
ORB orb = ORB.init(args, props);
POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
MyServicePOA myServicePOA = new MyServiceImpl();
rootPOA.activate_object(myServicePOA);
MyService myService = myServicePOA._this(orb);
((com.sun.corba.se.spi.orb.ORB) orb).register_initial_reference("MyService", myService);
在此之后 MyService 将可通过 corbaloc::127.0.0.1:12345/MyService
访问
【讨论】:
以上是关于在 Java 中运行嵌入式 CORBA 命名服务的主要内容,如果未能解决你的问题,请参考以下文章
如何从 CORBA IOR 和 NamingContextExt 中提取服务器主机/IP? [爪哇]