Я пытаюсь использовать связь с сервером RMI-сервера. Я написал следующий класс/интерфейс:Сторона клиента Java RMI
- Интерфейс RemoteInterface расширяет Remote
- Класс HelloStub расширяет UnicastRemoteObject реализует RemoteInterface
- Class Server, который я переплетен удаленный OBJ
Клиента класса следующим образом:
import java.rmi.*; public class Client { public static void main(String[] args) { try { String globalName = "rmi//127.0.0.1:1099/hello"; RemoteInterface remoteObj = (RemoteInterface)Naming.lookup(globalName); System.out.println(remoteObj.SayHello()); } catch(Exception e) { System.out.println(e.getMessage()); }
Я не понимаю, почему я должен удалить интерфейс RemoteInterface, чтобы выполнить поиск? Не могу ли я использовать класс HelloStub, который является реальным удаленным объектом?
Спасибо.
Вы должны использовать 'RemoteInterface', чтобы разрешить уровень абстракции. Таким образом, обе стороны (клиент и сервер) не должны знать ничего друг о друге, кроме того, что оба должны реализовать' RemoteInterface' –
Ask противоположный вопрос. Какую пользу вы бы получили от использования класса stub? Никто. И что вы на самом деле здесь делаете? «Ответы на удаленный объект через удаленный интерфейс» - это ответ. Так напишите это. – EJP