Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
49 / 49 / 3
Регистрация: 07.12.2012
Сообщений: 201
Записей в блоге: 1

RMI не получается получить объект заглушку

04.10.2013, 21:54. Показов 1432. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Server
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
import javax.naming.NamingException;
import java.rmi.AlreadyBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
 
public class Server {
    public static void main(String[] args) throws RemoteException, NamingException, AlreadyBoundException {
        WareHouseIPL wareHouseIPL=new WareHouseIPL();
        Registry registry= LocateRegistry.createRegistry(1099);
        registry.bind("rmi://192.168.0.86:1099/central_warehouse", wareHouseIPL);
    }
}
Client
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Client {
    public static void main(String[] args) throws NamingException, RemoteException, NotBoundException {
        Context context=new  InitialContext();
        NamingEnumeration<NameClassPair> e=context.list("rmi://192.168.0.86:1099");
        while (e.hasMoreElements()){
            NameClassPair classPair=e.nextElement();
            System.out.println(classPair.getName());
            System.out.println(classPair.getClassName());
            System.out.println(classPair.getNameInNamespace());
        }
         context.lookup("rmi://192.168.0.86:1099/central_warehouse");
 
    }
}
Результат выполнения

"rmi://192.168.0.86:1099/central_warehouse"
java.lang.Object
rmi://192.168.0.86:1099/central_warehouse
Exception in thread "main" javax.naming.NameNotFoundException: central_warehouse
at com.sun.jndi.rmi.registry.RegistryContex t.lookup(RegistryContext.java:116)
at com.sun.jndi.toolkit.url.GenericURLConte xt.lookup(GenericURLContext.java:203)
at javax.naming.InitialContext.lookup(Initi alContext.java:411)
at Client.main(Client.java:27)
at sun.reflect.NativeMethodAccessorImpl.inv oke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.inv oke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.jav a:43)
at java.lang.reflect.Method.invoke(Method.j ava:606)
at com.intellij.rt.execution.application.Ap pMain.main(AppMain.java:120

Классы которые я передаю.
Java
1
2
3
4
5
6
import java.rmi.Remote;
import java.rmi.RemoteException;
 
public interface WareHouse extends Remote {
    public int getPrice(String s) throws RemoteException;
}[
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.HashMap;
 
public class WareHouseIPL extends UnicastRemoteObject implements WareHouse {
    public WareHouseIPL() throws RemoteException {
          prices=new HashMap<String,Integer>();
          prices.put("one",1);
          prices.put("two",2);
    }
    @Override
    public int getPrice(String s) throws RemoteException {
        Integer price=prices.get(s);
        return price==null?price:0;
    }
    private HashMap<String,Integer> prices;
}
Добавлено через 51 минуту
С этой ошибкой разобрался потому немного переформулирую вопрос в чем принципиальное разлчие библиотек
javax.naming
и java.rmi.registry.
И почему первая не работает а вторая работает?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2013, 21:54
Ответы с готовыми решениями:

Java rmi: не могу возвратить объект
Здравствуйте. При реализации удаленного интерфейса rmi столкнулся с проблемой: мои удаленные методы возвращают без проблем примитивные...

Не получается получить объект Экселя через getObject под Win 8-64
Добрый день! Может ктото сталкивался с задачей, чтобы получить экземпляр книги Excel 2013? Под Win32 7-ку, такая конструкция работает: ...

Ошибка в RMI: nested exception is: java.lang.ClassNotFoundException: rmi.RemoteDateImpl_Stub
Пытаюсь создать простое RMI приложение , а точнее беру пример из книги сервер выглядить так когда его запускаю из JBuilder то...

3
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
07.10.2013, 19:40
Цитата Сообщение от Hideo_Kuze Посмотреть сообщение
javax.naming
Тужен для JNDI , которая позволяет поулчать доступ к удалённым объектам по их имени.

Цитата Сообщение от Hideo_Kuze Посмотреть сообщение
java.rmi.registry
- RMI

Он позволяет рапределять вычисления, Тоесть на удалённой машине мы дёргаем через RMI метод, передаём в него нужные параметры, он их обрабатывает с использованием вычислительных мощей удалённой машины и возвращает нам толкьо результат.

Подрезюмирую:

JNDI - позволяет полностью оперировать с удалёнными объектами на локальной машине (считай обёртка над механизмом серилизации/десерилизации)

RMI - Повзоляет вызывать методы удалённо, получать результаты и не нагружать при этом локальную машину.
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
08.10.2013, 10:22
Цитата Сообщение от warloc69 Посмотреть сообщение
JNDI - позволяет полностью оперировать с удалёнными объектами на локальной машине (считай обёртка над механизмом серилизации/десерилизации)

RMI - Повзоляет вызывать методы удалённо, получать результаты и не нагружать при этом локальную машину.
Э-э-э... как бы это помягче... Это "не совсем так". JNDI - это метод ведения директории объектов, даже не обязательно организованных в виде дерева. Через JNDI можно получить доступ даже к жесткому диску, есть указать соответствующего провайдера. Можно к LDAP. А можно - к объектам, зарегистрированным в каталоге на сервере.

Когда Вы получаете удаленный объект типа EJB через JNDI, то реально вызовы идут через RMI (реализованный поверх IIOP или JRMP). JNDI обеспечивает только механизм поиска и частично создание прокси. А сериализацией и т.п. занимается исключительно RMI, JNDI к этому вообще не имеет отношения.
0
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
08.10.2013, 11:34
Цитата Сообщение от Skipy Посмотреть сообщение
Э-э-э... как бы это помягче... Это "не совсем так".
Ну хоть на 40% угадал )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2013, 11:34
Помогаю со студенческими работами здесь

Почему не получается получить и изменить ul через js по id? А что выше id получается
все данные классы находятся в меню шапке 1 работает а 2 нет сайт http://phpstack-189549-661864.cloudwaysapps.com/ ...

Не получается собрать объект
Всем привет Есть таблица.В ней есть 2 поля со встроенными в ячейки &lt;input type (цена и дата) и поле с чекбоксами (для каждой строки свой...

Не получается сохранить JSON в объект
После запроса к API Вконтакте получаю ответ в формате JSON следующего вида: { &quot;response&quot;: } Здесь отображается количество...

Не получается создать СОМ объект на с#
Помогите, пожалуйста, разобраться почему dll-ка не регистрируется в системе. Все переделывал несколько раз по этим статьям, разница...

DataGridView не получается добавить объект
Имеется класс: На форме имеется DGV(DatagridView). Я видел в ролике что можно добавить столбцы по полям класса. Нажимает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru