RMI exportObject (удаленный объект, PORT); createRegistry (ПОРТ); - PullRequest
1 голос
/ 12 августа 2011

Мне интересно, может ли

UnicastRemoteObject.exportObject(Remote,portNo) & LocateRegistry.createRegistry(portNo);

porNo быть таким же?

Я проверяю, это работает, но я волнуюсь, если есть какие-либо осложнения?

Почему exportObject должен указывать объект для работы? когда я использую exportObject (Remote obj), он выдает NullPointerException.

1 Ответ

2 голосов
/ 13 августа 2011

Мне интересно, может ли оба порта

UnicastRemoteObject.exportObject(Remote,portNo) &
LocateRegistry.createRegistry(portNo);

не быть одинаковыми?

Да, если вы не используете неравные фабрики сокетов, которые вам не нужны.т.Если возникнет проблема, будет выдано исключение.

Я проверяю, работает ли оно, но я беспокоюсь, если возникнут какие-либо осложнения?

На самом деле совсем нетЭто хорошая идея, экономит на прослушивании портов.Вы можете использовать Registry.REGISTRY_PORT, который зарезервирован в IANA и поэтому должен закрывать все аргументы с помощью netadmins.

Почему для ExportObject требуется указать объект для работы?

Поскольку это статический метод.

, когда я использую exportObject (Remote obj), он вызывает исключение StubNotFoundException.

Поскольку вы не создали заглушку.Если вы используете> = 1.5, вам не нужно генерировать заглушку, но вам нужно указать номер порта.Если вы укажете ноль, вы получите номер порта, назначенный системой, но если вы уже экспортировали удаленный объект, в этом случае в Реестр, вы снова будете использовать его порт, если только вы не используете неодинаковые фабрики сокетов.

...