Лекция по RMI В данной лекции есть два примера по RMI: один для сервера, где объект помещается в реестр, и один для работы с этим объектом. Код сервера
public static final String UNIC_BINDING_NAME = "server.reverse";

public static void main(String[] args) throws Exception
{
 //создание объекта для удаленного доступа
 final ReverseImpl service = new ReverseImpl();

 //создание реестра расшареных объетов
 final Registry registry = LocateRegistry.createRegistry(2099);
 //создание "заглушки" – приемника удаленных вызовов
 Remote stub = UnicastRemoteObject.exportObject(service, 0);
 //регистрация "заглушки" в реесте
 registry.bind(UNIC_BINDING_NAME, stub);

 //усыпляем главный поток, иначе программа завершится
 Thread.sleep(Integer.MAX_VALUE);
}
Код клиента
public static final String UNIC_BINDING_NAME = "server.reverse";

public static void main(String[] args) throws Exception
{
 //создание реестра расшареных объетов
 final Registry registry = LocateRegistry.createRegistry(2099);

 //получаем объект (на самом деле это proxy-объект)
 Reverse service = (Reverse) registry.lookup(UNIC_BINDING_NAME);

 //Вызываем удаленный метод
 String result = service.reverse("Home sweet home.");
}
Так вот, если со сервером все нормально, то с клиентом проблема. Он не будет работать. Я сейчас изучаю RMI, и пробовал сделать что-нибудь интересное с помощью RMI. В общем, ближе к делу: в клиенте нужно использовать getRegistry(2099) вместо createRegistry(2099). Иначе будет вот примерно такая ошибка: Exception in thread "main" java.rmi.server.ExportException: Port already in use: 3333; Ознакомившись немного с документацией по классу LocateRegistry все становится на свои места: метод createRegistry помещает на определенный порт Registry, а так же возвращает ссылку на помещенный на порт Registry, чтобы можно было забиндить туда наш прокси объект-заглушку, который бы обрабатывал запросы, если же там уже будет Registry, то бросает исключение, а getRegistry обращается к порту, и если там уже есть Registry - возвращает его, иначе бросает исключение. Просьба исправить данный код, чтобы он был работоспособным.