Question

I ai deux application qui communique en utilisant des objets RMI. J'ai une interface, une classe de mise en œuvre et la classe stub généré.

Je reconnais que certains changements dans la classe impl me prendre pour créer une nouvelle classe de souche.

Ma question est, quels changements je peux faire sans re-compiler à nouveau 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 utilise?
  • Puis-je changer de classe la classe impl est à l'aide?
  • Puis-je documenter les impl et toutes les classes utilisées?

Je pose cette question, parce que je l'ai fait un changement au début de cette semaine et maintenant, la connexion RMI est cassée. Mais j'ajouter que les commentaires et mis à jour mon checkstyle. J'ajoute donc la version série uids changé certaines classes définitives.

Était-ce utile?

La solution

Il vous suffit de relancer CRIM et générer vos cours de déploiement si vous modifiez la signature de la méthode, y compris l'ajout et la suppression. Le code généré relie simplement un objet d'invocation à distance à la mise en œuvre effective par 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 la mise en œuvre font également partie de votre signature de la méthode, puis les versions appropriées seront nécessaires sur le côté client pour correspondre à la mise en œuvre à distance, mais rien de spécifique RMI.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top