2009-03-20 8 views
1

J'ai deux applications qui communiquent en utilisant des objets RMI. J'ai une interface, une classe d'implémentation et la classe de stub générée.RMI: Quel changement a besoin d'une classe impl recompilée

J'ai reconnu, que certains changements dans la classe impl me prennent pour créer une nouvelle classe de stub.

Ma question est, quels changements je peux faire sans re-compiler le talon?

En ce qui concerne ce que je sais:

  • Je ne peux pas changer la structure de la méthode (ajouter, supprimer, les méthodes de changement)
  • Puis-je ajouter serialVersionUID aux classes la classe impl est utilisée?
  • Puis-je modifier les classes de la classe impl en utilisant ?
  • Puis-je documenter l'impl et toutes les classes utilisées?

Je pose cette question, parce que j'ai fait un changement au début de cette semaine et maintenant, la connexion RMI est cassée. Mais je n'ajoute que des commentaires et met à jour mon checkstyle. Donc, j'ajoute des UID en version série et j'ai changé certaines classes pour qu'elles soient finales.

Répondre

2

Il vous suffit de réexécuter rmic et de générer vos classes de déploiement si vous modifiez une signature de méthode, y compris l'ajout et la suppression. Le code généré lie simplement un objet d'appel distant à l'implémentation réelle via les méthodes définies pour la classe. Cela signifie que vous pouvez modifier le code impl (à l'exception des signatures de méthode) et le code de toute classe utilisée par la classe impl sans problème. Si les classes utilisées par l'implémentation font également partie de la signature de votre méthode, alors les versions appropriées seront requises du côté client pour correspondre à l'implémentation à distance, mais cela n'est pas spécifique à RMI.