Мне интересно, могут ли оба
UnicastRemoteObject.exportObject(Remote,portNo) &
LocateRegistry.createRegistry(portNo);
порт не будет одинаковым?
Да, если только вы не используете неравные фабрики сокетов, а это не так. Если есть проблема, будет выброшено исключение.
Я тестирую, это работает, но я беспокоюсь, есть ли какие-либо осложнения?
Вовсе нет, на самом деле это хорошая идея, экономит на прослушивании портов. Вы можете использовать Registry.REGISTRY_PORT, который зарезервирован в IANA, и поэтому также следует отключать любые споры с сетевыми администраторами.
Почему для работы exportObject необходимо указывать объект?
Потому что это статический метод.
когда я использую exportObject(Remote obj), он выдает исключение StubNotFoundException.
Потому что вы не создали заглушку. Если вы используете >= 1.5, вам не нужна сгенерированная заглушка, но вам нужно указать номер порта. Если вы укажете ноль, вы получите номер порта, выделенный системой, но если вы уже экспортировали удаленный объект, в данном случае реестр, вы будете совместно использовать его порт, опять же, если вы не используете неодинаковые фабрики сокетов.
person
user207421
schedule
13.08.2011