Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur : java.rmi.ConnectException:

Connection refused to host ...

Sujet résolu
    18 décembre 2014 à 19:41:27

    Bonjour,

    Je viens vers vous après avoir cherché sans trouver comment résoudre mon problème. Débutant en Java, cela fait des heures et des heures que je tourne en rond pour chercher à résoudre ceci.

    J'essaie de faire du RMI. Mon code côté Serveur est le suivant: 

    import java.rmi.*; 
    public class Serveur{
    	public Serveur(){
    
    	}
    
    	public static void main(String[] argv) {
    		try {
    		Naming.rebind ("rmi://xxx.xxx.xxx.xxx:1099/Calcul", new Calcul());
    		
    		 System.out.println("Serveur pret :");
    		}
    		catch (Exception e){
    		 System.out.println("Erreur Serveur :" +e);	
    		}
    	}
    }

    xxx.xxx.xxx.xxx est mon IP que j'obtiens en tapant la commande sur l'invite de commandes et en prenant l'Adresse IPv4.

    Mon client ressemble à ça : 

    import java.rmi.*;
    
    public class Client {
    	public static void main(String[] argv) {
    		try {
    System.setSecurityManager(new RMISecurityManager());
    		CalculInterface calcul = (CalculInterface)Naming.lookup("rmi://xxx.xxx.xxx.xxx:1099/TestCalcul");
    		
    		System.out.println("Client appel calcul :" +calcul.somme(2,3));
    		}
    		catch(Exception e){
    		System.out.println("Erreur client : " +e);
    		}
    	}
    }

    Et Ma classe Calcul et l'interface à ça:

    import java.rmi.*;
    import java.rmi.server.*;
    
    public class Calcul extends java.rmi.server.UnicastRemoteObject implements CalculInterface {
    	public Calcul() throws RemoteException {}
    	public int somme (int a, int b) throws RemoteException{
    	return a+b;
    	}
    }
    import java.rmi.*;
    
    public interface CalculInterface extends Remote {
    	public int somme (int a, int b) throws java.rmi.RemoteException;
    	}
    

    Sur l'invite de commande je compile mes fichiers avec la commande javac nomfichier.java

    Je fais ceci pour Serveur.java  Client.java et Calcul.java

    Ensuite dés que je fais l'exécution du Serveur par la commande java Serveur,

    J'ai cette erreur Erreur Serveur :java.rmi.ConnectException: Connection refused to host: xxx.xxx.xxx.xxx; nested exception is: java.net.ConnectException: Connection refused: connect

    Quelqu'un aurait une idée pour me "dépanner"?

    -
    Edité par null93 18 décembre 2014 à 19:51:49

    • Partager sur Facebook
    • Partager sur Twitter
      18 décembre 2014 à 20:29:18

      Ton serveur n'est pas démarré!

      Lance ton main serveur PUIS ton main client!(N'oublie d'exporter un jar avec interface et classe serveur dans ton projet client)

      Bonne continuation.

      • Partager sur Facebook
      • Partager sur Twitter
        18 décembre 2014 à 20:36:19

        footsteps a écrit:

        Ton serveur n'est pas démarré!

        Lance ton main serveur PUIS ton main client!(N'oublie d'exporter un jar avec interface et classe serveur dans ton projet client)

        Bonne continuation.


        Comment faire ceci? :-( je suis vraiment null
        • Partager sur Facebook
        • Partager sur Twitter
          19 décembre 2014 à 3:17:38

          Eclipse:file->export->java jarfile .Tu choisis l'interface et ta classe implémentée.tu enregistres dans quelque part.

          Dans ton projet client properties java build path add external tu récup le jar ok.Un ex simple:(je ne te mets pas l'interface ni l'impl).

          package serveur;
          
          import java.rmi.Naming;
          import java.rmi.registry.LocateRegistry;
          
          import service.BanqueRemoteImpl;
          
          public class ServeurB {
          
          	public static void main(String[] args) {
          		try{
          			LocateRegistry.createRegistry(1099); //start serveur
          			BanqueRemoteImpl sk = new BanqueRemoteImpl();
          			Naming.rebind("rmi://localhost:1099/Compte",sk);  //on publie la ref de l'objet bean
          			System.out.println(sk.toString()); //ad ip port ref objet
          		}
          		catch(Exception e){
          			e.getMessage();
          		}
          
          	}
          
          }



          -
          Edité par footsteps 19 décembre 2014 à 3:18:43

          • Partager sur Facebook
          • Partager sur Twitter
            19 décembre 2014 à 3:19:27

            Et le client:

            import java.util.List;
            
            public class Client {
            
            	public static void main(String[] args) {
            		try {
            			BanqueRemote stub = (BanqueRemote)Naming.lookup("Compte");
            			List<Compte> liste = stub.consulterComptes();
            		
            			 for(Compte c:liste){
            					System.out.println(c.getNumero()+c.getSolde());
            				}
            			 System.out.println(stub.consulterSolde("pierre"));
            		} catch (Exception e) {
            	
            			e.printStackTrace();
            		} 
            	}
            
            }



            • Partager sur Facebook
            • Partager sur Twitter

            Erreur : java.rmi.ConnectException:

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown