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 :

[RMI] Impossible de lancer mon serveur


Sujet :

API standards et tierces Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut [RMI] Impossible de lancer mon serveur
    Après avoir lancé le registre (rmiregistry), j'essai de lancer mon serveur RMI (implémentation de l'interface Suite) : ca rale.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    exception dans SuiteImpl.main:
    java.rmi.ServerException: Server RemoteException; nested exception is:
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: rmi.suite.SuiteImpl_Stub
    Pouvez vous m'aider ?

    Merci.

  2. #2
    vux
    vux est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 34
    Points
    34
    Par défaut
    Salut,

    as tu bien généré les stubs et les skeletons ( avec la commande rmic)?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    Salut,

    Tout à fait. J'ai repris un exemple sur le net.

    J'ai créé une interface (rmi.suite.Suite.class), et une classe serveur (SuiteImpl.class). Ensuite, j'ai généré le stub (SuiteImpl_Stub.class) et le skelton (SuiteImpl_Skel.class) avec rmic (tache rmic de ant).

    Merci de t'intéresser à mon problème.

  4. #4
    vux
    vux est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 34
    Points
    34
    Par défaut
    C'est possible que ce soit un probleme de packages.

    Essaie de tout mettre dans un meme repertoire et de supprimer les infos de packages.

    Sinon essaie de prendre cet exemple (c un TP qu'on a fait cette année).

    http://www.chez.com/vux/divers/annuaire.zip

    Au passage t'auras aussi un exemple corba.

    @+
    VUX

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    Malheureusement, 'ai déjà essayé de mettre toutes les classes dans un répertoire simple. Le problème se présentait de la même facon.

    Je vais regarder de prêt le TP.

    Merci.

  6. #6
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    Pourrais tu mettre un peu de code de ton interface (Suite si j'ai tout suivi) et de la classe qui l'implémente.

    Comment lance-tu le registry ? en console ou directement dans ton programme java ?

    Et puis pour être sûr, quand tu crées le stub et le skel, tu n'as aucune erreur de signalée ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    Voilà l'interface Suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public interface Suite extends Remote
    {
    	/* une méthode qui retourne un résultat de type entier
    	 * doit obligatoirement jeter RemoteException
    	 */
        public int donnerResultat(int n) throws RemoteException;
    }
    Voilà la classe d'implémentation :
    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
     
    public class SuiteImpl implements Suite
    {
    	// Constructeur de la classe
        public SuiteImpl() throws RemoteException
        {
        	super();
            // permet la communication par protocole TCP
            UnicastRemoteObject.exportObject(this);
        }
        public int donnerResultat(int n) throws RemoteException
        {
            int inc = 0;
            int result = 0;
            for (inc = 0; inc <= n; inc++)
            {
                result = result + inc;
            }
            return result;
        }
    }
    Je lance effectivement le registre en ligne de commande dans une console (dès que je lance mon serveur, il rale : Default cache directory not found. JAR caching disabled.").

    Pas de message d'erreur lors de la génération.

    Merci beaucoup pour le coup de main.

  8. #8
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    J'ai peut être une idée mais je ne suis pas sur qu'elle résolvera complètement ton problème. Il faut que ta classe d'implémentation hérite de java.rmi.server.UnicastRemoteObject :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class SuiteImpl extends java.rmi.server.UnicastRemoteObject implements Suite
    Essaie déjà ça et refait le skel et le stub. Je pense que ça a pu géner la génération du stub par rmic.

    Tu peux aussi de essayer de lancer ton registry directement à partir de programme java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.rmi.registry.LocateRegistry.createRegistry(1099);
    En général, je créé une classe ServeurRMI qui lance le registry, crée l'objet distant et fait le Naming.rebind dans la foulée.

    Voila, c'est tout ce que je vois pour l'instant, ton code à l'air correct.

    Tiens moi au courant.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut [Résolu][RMI] Impossible de lancer mon serveur
    CA MAAAAAAARCHE !!!!!

    J'ai simplement dans un premier temps utilisé la méthode createRegistry de la classe LocalRegistry. Et ca marche.

    Aurais tu une explication théorique de la raison pour laquelle mon registre ne fonctionne pas lorsque je le lance autrement ? Je ne peux pas me permettre de lancer un registre par serveur RMI.

    Merci BEAUCOUP !

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Points : 15
    Points
    15
    Par défaut Re: [Résolu][RMI] Impossible de lancer mon serveur
    Citation Envoyé par Dahu
    Aurais tu une explication théorique de la raison pour laquelle mon registre ne fonctionne pas lorsque je le lance autrement ? Je ne peux pas me permettre de lancer un registre par serveur RMI.
    Vérifie ton installation et tes classpath .. peut etre qu'il ne va pas au bon endroit

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    Ulmo37,

    Je ne demande pas mieux que de vérif. mes CLASSPATH.

    Le CLASSPATH de mon serveur RMI, c'est facile : je lui donne le lieu de mon pacquet rmi.suite.*

    Mais le CLASSPATH du registre (rmiregistry), que mettre ? Dois-je créer un jar pour isoler mon stub et mon skelton ? Dois-je au contraire le mettre à rien (est-ce le serveur RMI qui communique les classes dans le registre?)

    Merci pour vos remarques : ca m'intéresse.

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Ce que je te conseil de générer tes skel et stub directement dans ton projet et comme la si magnifiquement sugere @ldehan, de lancer ton rmiregistery depuis le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.rmi.registry.LocateRegistry.createRegistry(1099);
    du coup le classpath sera automatiquement celui de ton application et tu n'aura plus aucun probleme.

    Remarque : avec les nouvelles versions du framework, il n'est de généré plus que le Stub et non le Stub + Skeletton. Car dans ces dernieres versions, le Stub joue egalement le role du Skel.

    Voili, pour ceux qui galèrent, courrage !!!!

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

Discussions similaires

  1. Impossible de lancer mon application
    Par lvr dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 26/04/2007, 09h11
  2. impossible de lancer mon jar sous kubuntu
    Par altadeos dans le forum NetBeans
    Réponses: 2
    Dernier message: 14/11/2006, 13h45
  3. [C#] impossible de lancer mon appli sur un autre PC
    Par xtream dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/09/2006, 15h40
  4. [EasyPHP] Impossible de lancer les serveurs
    Par leodi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 08/03/2006, 23h07
  5. Impossible de contacter mon serveur FTP via ie
    Par Polskynet dans le forum Internet
    Réponses: 3
    Dernier message: 05/12/2005, 14h57

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