RMISecurityManager)
qui autorisera la chargement depuis une autre application
de classes sérialisables. Cett opération est réalisée
par la séquence
if(System.getSecurityManager() == null)
System.setSecurityManager (new RMISecurityManager());
MonObjetDistant unObjet = new MonObjetDistant;
UnicastRemoteObject,
cette exposition est auomatique. Par contre, si ce n'est pas le cas, l'objet
doit être exposé explicitement par appel de
la méthode statique exportObject de la classe
UnicastRemoteObject:
import java.rmi.server.*;
UnicastRemoteObject.exportObject(unObjet);,
java.rmi.Naming :
void Naming.bind(String nom, Remote obj) : associe l'objet au nom spécifié;
void Naming.rebind(String nom, Remote obj) : réassocie le nom au nouvel objet;
void Naming.unbind(String nom) : supprime
l'enregistrement correspondant;
Remote Naming.lookup(String nom) : renvoie
la référence (talon) de l'objet enregistré sous le nom donné;
String[]Naming.list(String nom) : renvoie
la liste des noms enregistrés.
Naming.rebind("nomUnObjet", unObjet);
CompteurServeur
correspondant à un serveur exposant un compteur de la
classe CompteurImpl
et un autre de la classe CompteurImpl2.
|
rmiregistry.
Le serveur correspondant est associé au port TCP 1099. Un numéro de port différent peut être
spécifié en paramètre au lancement de la commande. Sur
une machine UNIX, le serveur de noms serait lancé en arrière
plan par la commande :
|
CompteurServeur
a été lancé en arrière plan sur une machine UNIX :
--> java CompteurServeur&
|