Java Avanc´
e - Cours 2
Solution des exercices
1 Exercices
Exercice 2.1
Q1 R´ecup´erer l’archive http://www.derepas.com/java/cours2_exercice_1.jar comme sp´efici´e dans la fiche
pratique Importer un fichier jar http://www.derepas.com/java/import_jar.
Sous Unix :
Editer le fichier build.xml et changer `a la ligne 9: /chemin/vers/les/sourcesen /home/monlogin/cours2 exercice 1.
Suivent les solutions en ligne de commande (unix ou windows), avec Netbeans et avec Eclipse.
Solution en ligne de commande
>ant
Buildfile: build.xml
init:
compile:
[mkdir] Created dir: /home/monlogin/cours2_exercice_1/build
[mkdir] Created dir: /home/monlogin/cours2_exercice_1/build/classes
[javac] Compiling 5 source files to /home/monlogin/cours2_exercice_1/build/classes
rmic:[rmic] RMI Compiling 1 class to /home/monlogin/cours2_exercice_1/build/classes
BUILD SUCCESSFUL
Total time: 2 seconds
On lance le serveur `a l’aide des commandes suivantes:
>cd build/classes
>rmiregistry &
>cd ../..
>ant serveur
Buildfile: build.xml
init:
compile:
rmic:
serveur:
[java] FruitsEtLegumes a ete enregistre dans le serveur de nom.
On peut alors lancer le client:
>ant client
Buildfile: build.xml
init:
compile:
rmic:
Solution des exercices Java Avanc´
e - Cours 2 1/5
client:
[java] Il y a 2 pomme(s) dans le panier.
BUILD SUCCESSFUL
Total time: 1 second
L´ecran du serveur affiche alors :
[java] Il y reste 8 pomme(s) en rayon
Si on relance `a nouveau le client le nombre de pommes baisse encore.
Solution avec Netbeans 4.1
Tout d’abord t´el´echarger le fichier http://www.derepas.com/java/cours2_exercice_1.jar, par exemple
dans le r´epertoire c:\exojava. D´ecompresser l’archive `a l’aide de la commande jar xvf cours2 exercice 1.jar :
Faire un nouveau projet dans netbeans : Cat´egorie : G´en´eral, Projects : Java Project with existing ant script. Clique sur next
et rentrer le r´epertoire o`u l’archive a ´et´e d´ecompr´ess´ee :
Solution des exercices Java Avanc´
e - Cours 2 2/5
Il suffit alors de cliquer sur next. Pour compiler il suffit alors de lancer la cible compile dans le fichier build.xml :
On peut alors observer les fichiers cr´e´es :
Solution des exercices Java Avanc´
e - Cours 2 3/5
On peut alors lancer rmiregistry :
Dans le fichier build.xml Editer le fichier build.xml et changer `a la ligne 9: /chemin/vers/les/sourcesen c:/exojava/cours2
On peut alors lancer le serveur, ce qui produit le r´esultat suivant :
Puis le client :
On peut constater que le nombre de pommes `a baiss´e dans la fenˆetre serveur. En relancant le client on voit que le nombre de
pommes diminue encore.
Q2 La solution est disponible `a l’url:
http://www.derepas.com/java/cours2_exercice_1_solution.jar
Exercice 2.2
Q1 On mets les interfaces dans le package chat.interfaces, ce qui donne pour le client :
Solution des exercices Java Avanc´
e - Cours 2 4/5
package chat.interfaces;
public interface ClientInterface extends java.rmi.Remote {
void notifie(String nomUtilisateur, String phrase)
throws java.rmi.RemoteException;
}
Et pour le serveur :
package chat.interfaces;
public interface ServeurInterface extends java.rmi.Remote {
boolean ecrit(String nomUtilisateur, String phrase)
throws java.rmi.RemoteException;
}
Q2 La solution de l’exercice est t´el´echargeable `a l’URL: http://www.derepas.com/java/cours2_exercice_2.
jar.
La “ruse” de l’exercice est que le client de chat et le serveur de chat sont tous les deux des serveurs RMI :
le serveur de chat car la m´ethode ecrit peut ˆetre appel´ee par n’importe quel client de chat (qui est alors un client RMI).
le client de chat cat le m´ethode notifie peut ˆetre appel´ee par le serveur (qui est alors un client RMI).
Le serveur est impl´ement´e dans une seule classe : chat.serveur.ServeurImpl. Le client quant `a lui est impl´ement´e
dans deux classes situ´ees dans le package chat.client. Une classe, ClientImpl sert `a impl´ementer la partie serveur RMI
du client de chat, l’autre LireClavier sert `a impl´ementer l’envoie des message vers le serveur de chat.
Pour lancer le serveur, il faut apr`es avoir mis `a jour la cible init du fichier build.xml taper la liste de commandes
suivantes :
jar xvf cours2_exercice_2.jar # decompresse l’archive
cd cours2_exercice_2
ant # compile dans le repertoire build
cd build
rmiregistry & # lance rmiregistry dans le bon repertoire
cd ..
ant serveur # lance le serveur de chat
Pour lancer un client sur une autre machine, il faut apr`es avoir mis `a jour la cible init du fichier build.xml taper la liste de
commandes suivantes :
jar xvf cours2_exercice_2.jar # decompresse l’archive
cd cours2_exercice_2
ant # compile dans le repertoire build
cd build
rmiregistry & # lance rmiregistry dans le bon repertoire
cd ..
ant clientrmi & # lance la partie serveur RMI du client de chat
ant lecture # lance la partie client RMI du client de chat
Solution des exercices Java Avanc´
e - Cours 2 5/5
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !