IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

mise en oeuvre de RMI


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 177
    Par défaut mise en oeuvre de RMI
    Bonjour,

    J'essaye de mettre en oeuvre les objets distants avec RMI.
    J'ai un problème de compilation pour ma classe cliente :

    cannot find symbol
    [javac] symbol : class IAgence
    [javac] location: class AgenceClient
    [javac] IAgence agence = (IAgence) Naming.lookup(nom);

    Voici le code ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    // AgenceClient.java 
     
    import java.rmi.Naming; 
    import java.rmi.RMISecurityManager;
     
    /**
     * Classe dédiée côté client qui permet de regrouper toutes les opérations pour l'obtention d'une référence 
     * sur l'objet distant à partir de son nom et l'appel à la méthode à partir de la référence 
     * sur l'objet distant.
     * 
     * La marche à suivre contient trois étapes :<br><br>
     *              la mise en place d'un security manager dédié qui est facultative<br>
     *              l'obtention d'une référence sur l'objet distant à partir de son nom avec la commande lookup()<br>
     *              l'appel à la méthode à partir de la référence sur l'objet distant<br>
     *
     * @author Nicolas
     */
    public class AgenceClient { 
     
    	public static void main(String[] args) { 
     
    		double currentPrix = 0.0;
    		double leaderPrix = 0.0;
    		String currentNom = null;
    		String leaderNom = null;
     
    		// Creation et installation du Security Manager (facultatif) : 
    		// permet de charger des classes qui ne sont pas forcément dans le Classpath de la machine locale
    		if (System.getSecurityManager() == null) { 
    			System.setSecurityManager(new RMISecurityManager()); 
    		} 
    		for (int i = 2; i <5; i++) { 
    			try { 
    				// Rechercher l'objet Agence dans la registry machine args[i] 
    				//String nom = "rmi://" + args[i] + "/AgenceV2"; 
    				String nom = "rmi://127.0.0.1/AgenceV2";
    				IAgence agence = (IAgence)Naming.lookup(nom); 
    				currentPrix = agence.getMeilleurPrix(); 
    				currentNom = agence.getName(); 
    				// Afficher le nom de l'agence et le prix proposé 
    				System.out.println( "l'Agence " + currentNom + " propose une maison à " + currentPrix); 
    				} 
    			catch (Exception e) { 
    				e.printStackTrace(); 
    			} 
    			// Recherche le meilleur prix … 
    			if (leaderPrix > currentPrix) { 
    				leaderPrix = currentPrix; 
    				leaderNom = currentNom; 
    			} 
    		} 
    		// On affiche le resultat de la recherche 
    		String msg = "Le meilleur prix est à " + leaderNom + " : " + leaderPrix; 
    		System.out.println(msg); 
    	} 
    }
    Peut-être avez vous une solution merci

  2. #2
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    naturellement parceque tu n'as pas la classe IAgence chez le client.
    fais une copie du fichier IAgence.java et mets la dans le meme repertoire que le fichier AgenceClient.java et recompile

    j'espere que ca va t'aider

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 177
    Par défaut re
    oui, cela fonctionne de cette manière...
    Je pensais que l'interface était côté serveur.

    Merci

  4. #4
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    l'interface doit se trouver coté et serveur et coté client aussi, pourqu'il puisse faire un Cast lorsqu'il recupere l'objet, sinon il y'as une alternative qui est la reflexivité
    ++

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 177
    Par défaut re
    sous eclipse, j'ai deux sources folder (client et server) et je ne pas pas mettre l'interface côté client et côté serveur...

  6. #6
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    tu peu toujours creer un package commun entre les deux coté (clients et serveurs)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Documentation de mise en oeuvre
    Par babar_le_fou dans le forum C
    Réponses: 5
    Dernier message: 06/11/2005, 15h07
  2. Mise en oeuvre d'une standby
    Par armando123 dans le forum Oracle
    Réponses: 1
    Dernier message: 17/10/2005, 12h18
  3. [RMI][Applet] mise en place de RMI
    Par Michel38 dans le forum API standards et tierces
    Réponses: 44
    Dernier message: 27/07/2005, 15h02
  4. [JMS] Mise en oeuvre
    Par tery dans le forum Java EE
    Réponses: 4
    Dernier message: 21/02/2005, 13h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo