Философия Java


Некоторые службы CORBA - часть 2


Теперь, когда мы имеем представление о том, что делает серверный код, давайте взглянем на код клиента:

//: c15:corba:RemoteTimeClient.java

import remotetime.*; import org.omg.CosNaming.*; import org.omg.CORBA.*;

public class RemoteTimeClient { // Выбрасываем исключение на консоль:

public static void main(String[] args) throws Exception { // Создание и инициализация ORB:

ORB orb = ORB.init(args, null); // Получение контекста наименования:

org.omg.CORBA.Object objRef = orb.resolve_initial_references( "NameService"); NamingContext ncRef = NamingContextHelper.narrow(objRef); // Получение (разрешение) ссылки на строковый

// объект для сервера времени:

NameComponent nc = new NameComponent("ExactTime", ""); NameComponent[] path = { nc }; ExactTime timeObjRef = ExactTimeHelper.narrow( ncRef.resolve(path)); // Выполнение запроса к серверу:

String exactTime = timeObjRef.getTime(); System.out.println(exactTime); } } ///:~

Первые несколько строк делают то же, что они делали в серверном процессе: инициализируют ORB и разрешают указатель на сервис указания имен. Далее, нам нужна ссылка на объект для обслуживающего объекта, поэтому мы передаем ссылку на строковый объект в метод resolve( ), и приводим результат к ссылке на интерфейс ExactTime, используя метод narrow( ). В конце мы вызываем getTime( ).




Начало  Назад  Вперед



Книжный магазин