RMI: Для каких изменений нужен перекомпилированный класс impl - PullRequest
1 голос
/ 20 марта 2009

У меня есть два приложения, которые общаются с помощью объектов RMI. У меня есть интерфейс, класс реализации и сгенерированный класс заглушки.

Я понял, что некоторые изменения в классе impl требуют от меня создания нового класса-заглушки.

У меня вопрос, какие изменения я могу внести, не перекомпилируя заглушку снова?

Насколько я знаю:

  • Не могу изменить структуру метода (добавить, удалить, изменить методы)
  • Могу ли я добавить serialVersionUID в классы класс impl использует?
  • Могу ли я изменить классы, класс impl используя
  • Могу ли я документировать impl и все используемые классы?

Я задаю этот вопрос, потому что я сделал изменение в начале этой недели, и теперь соединение RMI разорвано. Но я только добавляю комментарии и обновляю свой чекстайл. Поэтому я добавил UID серийной версии и изменил некоторые классы, чтобы они стали окончательными.

1 Ответ

2 голосов
/ 20 марта 2009

Вам нужно только повторно запустить rmic и сгенерировать классы развертывания, если вы измените сигнатуру любого метода, включая добавление и удаление. Сгенерированный код просто связывает удаленный объект вызова с фактической реализацией через определенные методы для класса.

Это означает, что вы можете без проблем изменить код impl (кроме сигнатур методов) и код любого класса, используемого классом impl. Если эти классы, используемые реализацией, также являются частью сигнатуры вашего метода, то на стороне клиента потребуются надлежащие версии для соответствия удаленной реализации, но это не является специфичным для RMI.

...