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 ?
Réponse
Trop de publicités?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).