Запустите встроенную службу имен CORBA в Java - PullRequest
2 голосов
/ 07 февраля 2012

Можно ли запустить встроенную службу именования с серверным приложением Java 1.5 CORBA, чтобы к его слугам можно было обращаться по кратким URL-адресам "corbaloc" вместо длинных ссылок IOR, но без запускаются какие-либо другие демоны, такие как ORBD? Например. corbaloc::127.0.0.1:12345/MyService

Я заметил, что в Java 1.6+ есть класс TransientNameService, но я не уверен, что это то, о чем я думаю ..

Любая помощь будет принята с благодарностью!

1 Ответ

2 голосов
/ 10 февраля 2012

На Солнце 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

...