Лабораторная работа: Реализация почтового клиента и сервера на основе CORBA
String name = «Hello»;
NameComponent path[] = ncRef.to_name(name);
ncRef.rebind (path, href);
System.out.println («HelloServer ready and waiting…»);
// wait for invocations from clients
orb.run();
}
catch (Exception e) {
System.err.println («ERROR:» + e);
e.printStackTrace (System.out);
}
System.out.println («HelloServer Exiting…»);
}
}
6.1.3 Создание клиента
Перейдем к написанию кода для клиента.
Основные шаги написания клиентского приложения
1. Создание и инициализация ORB
2. Получение контекста службы имен (NamingContext)
3. Нахождение удаленного объекта
4. Вызов метода sayHello.
5. Вызов метода shutdown.
Как видно, первые два пункта совпадают с этапами создания серверного приложения, поэтому рассматривать их не будем.
Третий пункт реализуется тоже достаточно просто. Создается объект NameComponent. Вызывается метод resolve (NameComponent[] path), который отыскивает по имени удаленный объект (стандартный CORBA‑объект). При помощи метода narrow (org.omg.CORBA. Object obj) класса helloHelper (сгенерированного idlj компилятором) получаем объектную ссылку на интерфейс hello.
String name = «Hello»;
helloImpl = HelloHelper.narrow (ncRef.resolve_str(name));
Теперь можно вызывать метод sayHello:
System.out.println (helloImpl.sayHello());
Метод shutdown завершает работы сервера.
helloImpl.shutdown();