Можно ли автоматизировать RMI? - PullRequest
0 голосов
/ 15 марта 2012

Я просматривал документы RMI и задавался вопросом, можно ли автоматизировать RMI?Например, у меня есть 4 класса 1 интерфейс, 1 класс реализации, 1 класс сервера и 1 класс клиента.Теперь для удаленного доступа к объекту необходимо

  1. скомпилировать все классы

    javac class.java
    
  2. запустить rmiregistry
  3. запустить сервер
  4. запустить клиент

    java client
    

, который будет отображать вывод. Но я могу автоматически создать, экспортировать и привязать объект сервера к реестру rmi когда создается объект класса?Чтобы сервер был готов, пока объект жив, и клиент может начать доступ к методам?

У меня есть только 1 класс, который является сервером, и к нему не обращаются никакие другие классы, кроме клиента, поэтому здесь нет проблем безопасности .

Мой главный принцип - выполнить все 4 шага, перечисленных выше в самом коде, и сделать методы класса сервера доступными для клиента.Нет ручного выполнения javac, запуска rmiregistry, запуска сервера и Java-клиента.

Также клиент может получить доступ к серверу без каких-либо команд, таких как start rmiregistry и start server, запущенных изна стороне сервера, если сервер использует LocateRegistry.getRegistry () вместо LocateRegisgtry.creareRegistry (1099) ??

1 Ответ

2 голосов
/ 15 марта 2012

Если вы согласны с тем, что срок службы реестра совпадает с сроком службы серверного процесса, класс LocateRegistry имеет createRegistry(...) методы, которые позволяют вамобработать реестр легко.Все, что делает программа rmiregistry, это помещает крошечную оболочку вокруг вызова LocateRegistry.createRegistry(1099);.

...