Travaux dirigésJavaRemote Method Invocation |
<TD>\src : pour les sources des classes
<TD>\classes : pour les classes compilées
1) Dans un package rmi.uppercase :
2) Compiler les classes :
> set PATH=\\Ravel\Program\JDK116\bin;%PATH%
> set CLASSPATH=\\Ravel\Program\JDK116\lib\classes.zip;<TD>\classes
> javac -d <TD>\classes <TD>\src\UpperCase.java
> javac -d <TD>\classes <TD>\src\UpperCaseImpl.java
> javac -d <TD>\classes <TD>\src\UpperCaseClient.java
3) Générer les amorces (Stub/Skeleton) avec le compilateur
d'amorces rmic :
> set JAVA_HOME=\\Ravel\Program\JDK116
> rmic -d <TD>\classes rmi.uppercase.UpperCaseImplRemarque: 2 nouveaux fichiers d'amorces ont été créés :
- <TD>\classes\rmi\uppercase\UpperCaseImpl_Stub.class (Stub)
- <TD>\classes\rmi\uppercase\UpperCaseImpl_Skel.class (Skeleton)
4) Sur une machine nommée HOST1, lancer le
processus de service de dénomination sur le serveur qui met a disposition
les objets distribués :
HOST1> set CLASSPATH=
HOST1> start rmiregistryRemarque : i) pour que le programme rmiregistry fonctionne correctement, il faut l'empêcher de trouver localement les fichiers d'amorces (Stub et Skeleton) en examinant la variable CLASSPATH du système. Pour contourner ce problème, il suffit de désactiver temporairement (set CLASSPATH=) cette variable d'environnement. ii) Le programme rmiregistry peut s'exécuter en tâche de fond (start rmiregistry).
HOST1> set CLASSPATH=<TD>\classes
HOST1> java -Djava.rmi.server.codebase=file:/<TD>\classes/ rmi.uppercase.UpperCaseImplRemarque : la propriété java.rmi.server.codebase indique l'endroit où se trouve tous les fichiers de classe associés à l'application (et surtout les fichiers d'amorces).
HOST2> set CLASSPATH=<TD>\classes
HOST2> java rmi.uppercase.UpperCaseClient <HOST1> "la chaine a mettre en majuscules"
7) Reprenez le meme exercice et accéder au service de l'objet
distribué par l'intermédiaire d'une applet.
Les différentes classes nécessaires devront se situer
sur le serveur Http.