3 votes

Comment (au niveau de l'implémentation) Java RMI charge+définit-il les classes ?

Lorsque RMI (le sun.rmi dans les VM Sun) désérialise un objet, en tant que partie des paramètres ou de la valeur de retour d'un appel distant, il doit passer du nom de la classe (une chaîne de caractères dans les données sérialisées) à un fichier Class objet. Comment RMI décide-t-il quel ClassLoader à utiliser pour définir la classe ?

2voto

Par défaut, la désérialisation Java recherche en bas de la pile la première classe non système et utilise son chargeur de classe (c'est-à-dire le premier chargeur de classe non nul). RMI ajoute des annotations au flux série pour indiquer l'emplacement (URL) à partir duquel les classes doivent être téléchargées. Par défaut, les chargeurs de classes RMI utilisent cet emplacement pour trouver des classes supplémentaires. Il existe une propriété système permettant de désactiver ce comportement (ce qui n'est pas une mauvaise idée).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X