![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Domestic Cat |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
RMI-IIOP на примере
1. Что такое RMI-IIOP? RMI over Internet Inter-ORB Protocol. Порпосту, это та же RMI, но с возможностями CORBA - "общаться" с сервисами не только на Java. RMI-IIOP используется, в частности, в EJB. 2. Как ни странно, для данного примера тянуть ничего не нужно. Мы воспользуемся сервером orbd (Object Request Broker Daemon) и его NS (Naming Service), поставляемым с J2SE. 3. В целом действия наши те же, что и при написании обычного RMI приложения. Однако, нам необходим JNDI для определения местонахождения сервиса, см. JNDI example. Нашей задачей будет написать сервис, передающий текущее время в мс. 4. Начнем с ремоут интерфейса:
5. Добавляем его реализацию
Здесь видно 2 отличия от RMI JRMP (Java Remote Method Protocol): класс наследует от PortableRemoteObject, конструктор должен бросать RemoteException. 6. Пишем сервер:
Мы пользуем JNDI, поэтому объект TimeServiceImpl неободимо привязать к контексту. 7. Клиент:
Заметим главное отличие от примера с File Service: использование метода PortableRemoteObject.narrow. Мы не можем сделать простой кастинг в TimeService, поскольку совсем необязательно, что полученный объект (точнее, стаб) - это Java объект. 8. Теперь нужно скомпилить все классы: javac *.java 9. Следующий шаг - создать стаб и скелет для RMI-IIOP. Запускаем rmi компилятор с опцией -iiop rmic -iiop TimeServiceIpml 10. Запускаем сервер на порту 1999 (собственно, на любом свободном): orbd -ORBInitialPort 1999 (для винды : start orbd -ORBInitialPort 1999 ) 11. Запускаем сервис: java -Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1999 Server Кстати, это еще один способ передать параметры в InitialContext, - помимо описанных в примере про JNDI. 12. Запускаем клиента: java -Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1999 Client Service is found, time is 1110824870448 -------------------- |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |