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

avec Java Discussion :

"hello world" pour RMI


Sujet :

avec Java

  1. #1
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut "hello world" pour RMI
    Bonjour,

    J'ai un problème pour faire démarrer un serveur dans une application distribue.
    Je travaille avec 2 consoles avec ubuntu.
    Tous mes fichiers d’implémentations sont dans le même répertoire et je n'ai pas de faute de compilation.

    Listedes fichiers contenus dans le répertoire hello:
    Hello.class
    HelloClient.class
    HelloImpl.class
    HelloImpl_Stub.class
    HelloServer.class

    Je ne sais pas vraiment si cela est nécessaire mais a tout hasard j'ai les droit d’exécution sur les différents fichiers de class et le répertoire hello


    Je lance mon serveur et mon client avec respectivement, d’après mon tuto:
    java hello.HelloServer
    java hello.HelloClient m1:1099
    J'ai aussi essayé avec
    java hello.HelloClient localhost:1099

    Au lancement du serveur j'ai cette erreur en retour


    HelloServer exception Connection refused to host: 127.0.1.1; nested exception is:
    java.net.ConnectException: Connection refused


    marc@marc-ThinkPad-X61:~/rmi$ java hello.HelloClient localhost:1099
    HelloClient exception remoteConnection refused to host: localhost; nested exception is:
    java.net.ConnectException: Connection refused

    Mais ma console reste en attente.
    Pareil cote client mais la console redonne la main.

    Est-ce qu'il y a quelque chose a faire cote système pour pouvoir démarrer le serveur?

    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    HelloServer exception Connection refused to host: 127.0.1.1; nested exception is:
    Ton serveur essaie de se comporter comme un client et tente de se connecter à quelque chose sur la machin, quelque chose qui n'existe pas (connection refused)

  3. #3
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    Je comprendspas grand chosejusque la.


    Dans mon tuto on me donne le code suivant en me disant que c'est le minimum requis.


    Pour le serveur
    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
     
    package hello;
     
    import java.rmi.Naming;
    import java.net.MalformedURLException;
    import java.rmi.RemoteException;
     
     
    public class HelloServer {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
     
    		try {
    			HelloImpl helloObj = new HelloImpl();
    			Naming.rebind("Hello", helloObj);
    			} catch (RemoteException e){
    				System.out.println(" HelloServer exception " + e.getMessage());
    			} catch (MalformedURLException m) {
    				System.out.println(" HelloServer MFE: " + m.getMessage());
    			}
     
    	} // Fin Main
    }	// Fin class
    Pour le client

    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
     
     
    package hello;
     
    import java.rmi.Naming;
    import java.net.MalformedURLException;
    import java.rmi.RemoteException;
    import java.rmi.NotBoundException;
     
    public class HelloClient {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
     
    		try{
    			Hello helloObject = (Hello)Naming.lookup("//" + args[0] + "/Hello");
     
    			helloObject.sayHello("vio");
    			} catch (RemoteException e) {
     
    				System.out.println(" HelloClient exception remote" + e.getMessage());
     
    			} catch (NotBoundException nbe){
     
    				System.out.println(" HelloClient exception NotBoundExc" + nbe.getMessage());
     
    			} catch (MalformedURLException mfURL) {
     
    				System.out.println(" HelloClient exception MalFormedURL" + mfURL.getMessage());
     
    			}
     
    	} // Fin main
    }     //Fin class

    Est-ce qu'il y a quelque chose que je devrais ajouter??

    Merci de repondre

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    affiche le staktrace complet de l'erreur pour avoir une idée d'ou elle viens.

  5. #5
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    Stack trace


    Je ne sais pas le faire.
    J'ai essaye avec <ctrl> / que j'ai trouve chez oracle sun mais pas de resultat.

    Je suis oblige, autant que je sache, de sortir de la console avec <ctrl> c, mais apres le stack est perdu non??


    Toutes info la dessus serait bienvenue

    D'avance merci

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tonException.printStackTrace();

  7. #7
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    Voile le stack trace que j'ai en recuperant surl'exception remoteException

    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
     
    marc@marc-ThinkPad-X61:~/rmi$ java hello.HelloServer > stackTrace
    java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is: 
    	java.net.ConnectException: Connection refused
    	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
    	at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
    	at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
    	at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:340)
    	at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    	at java.rmi.Naming.rebind(Naming.java:177)
    	at hello.HelloServer.main(HelloServer.java:17)
    Caused by: java.net.ConnectException: Connection refused
    	at java.net.PlainSocketImpl.socketConnect(Native Method)
    	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
    	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
    	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
    	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
    	at java.net.Socket.connect(Socket.java:546)
    	at java.net.Socket.connect(Socket.java:495)
    	at java.net.Socket.<init>(Socket.java:392)
    	at java.net.Socket.<init>(Socket.java:206)
    	at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
    	at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:146)
    	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
    	... 6 more
         ^Cmarc@marc-ThinkPad-X61:~/rmi$

  8. #8
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    Merci d'oublier le message plus haut et voir en suivant:

    J'ai recupere le stacktrace sur l'exception remoteException
    Mais bon entre temps, voir plus bas, j'ai trouve une autre erreur

    Je vous passerai la trace si c'est encore nescessaire apres.


    Je viens de lire dans un autre exercice que l'on doit aussi et d'abord lancer le serveur de nom avec rmiregistry.
    Je l'ai fait et cote serveur et j'ai la console qui se met en attente.
    Elle ne redonne pas la main pour le démarrage du serveur

    Je sais pas si je dois faire
    rmiregistry et enter
    et ensuite
    java hello.HelloServer

    ou tout a la suite comme ici plus bas, mais qui n'est pas apparemment la solution:

    marc@marc-ThinkPad-X61:~/rmi$ rmiregisty java hello.HelloServer
    No command 'rmiregisty' found, did you mean:
    Command 'rmiregistry' from package 'openjdk-7-jre-headless' (universe)
    Command 'rmiregistry' from package 'gcj-4.6-jre-headless' (main)
    Command 'rmiregistry' from package 'openjdk-6-jre-headless' (main)
    Command 'rmiregistry' from package 'gcj-4.4-jre-headless' (main)
    Command 'rmiregistry' from package 'gcj-4.5-jre-headless' (universe)
    rmiregisty: command not found

    Merci pour la patience

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    rmiregistry est à lancer et *laisser tourner* tant que le serveur qui a besoin de RMI doit tourner. Autrement dit, il ne va pas te rendre la main. Ouvre une deuxième console et lance ton application java dans celle-ci.

  10. #10
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    Merci,enfin cette fois ça marche.

    Encore merci pour la peine, je suis désolé mais ce n'est vraiment pas évident pour moi de comprendre ce que je dois faire concrètement avec mon cours.
    En plus de mes fautes ça devient vraiment inextricable.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/07/2012, 16h01
  2. [SQL] magic quotes ou double apostrophes pour échapper apostrophe
    Par zorian dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 13/03/2006, 16h23

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