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

Entrée/Sortie Java Discussion :

java.rmi.ConnectIOException sous linux


Sujet :

Entrée/Sortie Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut java.rmi.ConnectIOException sous linux
    Bonsoir,

    je travaille sur un projet mettant en oeuvre un serveur et une interface graphique distante communicants par RMI. Tout le développement de ce projet a été fait sous XP, et lorsque j'ai essayé de le lancer sous linux (fedora 11) une exception bizarre a été levée lors de la tentative de connexion au serveur

    re test avec une serveur tout simple et pareil pour client :
    ServeurRMI.java
    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
    58
    59
    import java.rmi.*;
     
    import java.rmi.server.*;
     
     
     
    public class ServeurRMI extends UnicastRemoteObject implements Serveur_interface {
     
    	/**
     
             * 
     
             */
     
    	private static final long serialVersionUID = -463203912015592773L;
     
     
     
    	protected ServeurRMI() throws RemoteException {
     
    		super();
     
    	}
     
    	public String getInformation()throws RemoteException {
     
    		return "bonjour";
     
    	}
     
     
     
    	public static void main(String[] args) {
     
    		try {
     
    			java.rmi.registry.LocateRegistry.createRegistry(55555);
     
    			//System.out.println("Mise en place du Security Manager ...");
     
    			//System.setSecurityManager(new java.rmi.RMISecurityManager());
     
    			ServeurRMI serveurRMI = new ServeurRMI();
     
    			System.out.println("Enregistrement du serveur");
     
    			Naming.bind("rmi://127.0.0.1:55555/TestRMI",serveurRMI);
     
    			System.out.println("Serveur lancé");
     
    			} catch (Exception e) {
     
    			System.out.println("Exception capturée: " + e.getMessage());
     
    			}
     
    	}
     
    }
    Client.java:
    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
    import java.rmi.*;
     
     
    public class Client implements Remote{
    	public static Remote r;
    	public static void main(String[] args) throws Exception {
    		//System.setSecurityManager(new RMISecurityManager());
    		r = Naming.lookup("rmi://127.0.0.1:55555/TestRMI");
     
    		if (r instanceof Serveur_interface) {
    			String s = ((Serveur_interface) r).getInformation();
    			System.out.println("chaine renvoyée = " + s);
    			}
     
    	}
     
    }
    (vraiment rien de compliqué !)

    même exception :
    :
    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
     
    Exception in thread "main" java.rmi.ConnectIOException: Exception creating connection to: 0.0.6.155; nested exception is: 
    	java.net.SocketException: Invalid argument or cannot assign requested address
    	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
    	at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
    	at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
    	at sun.rmi.server.UnicastRef.invoke(Unknown Source)
    	at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
    	at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
    	at $Proxy0.getInformation(Unknown Source)
    	at Client.main(Client.java:11)
    Caused by: java.net.SocketException: Invalid argument or cannot assign requested address
    	at java.net.PlainSocketImpl.socketConnect(Native Method)
    	at java.net.PlainSocketImpl.doConnect(Unknown Source)
    	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    	at java.net.PlainSocketImpl.connect(Unknown Source)
    	at java.net.SocksSocketImpl.connect(Unknown Source)
    	at java.net.Socket.connect(Unknown Source)
    	at java.net.Socket.connect(Unknown Source)
    	at java.net.Socket.<init>(Unknown Source)
    	at java.net.Socket.<init>(Unknown Source)
    	at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)
    	at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)
    	... 8 more
    étant en réseau local, avec adressage en 192.168.1.x, l'adresse IP 0.0.6.15 m'a frappé ! pareil si je mets mon nom réseau à la place de l'adresse IP !

    quand j'essaye une autre adresse IP dans le code, il me dit qu'il ne trouve pas l'hôte ou que la connexion n'a pas pu être établie...

    Les deux projets fonctionnent sous XP sans aucun souci,

    mon fichier /etc/hosts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    127.0.0.1               localhost.localdomain localhost
    je ne sais pas où chercher (surtout avec cette IP 0.0.6.155)

    Merci pour tout renseignement utile !

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    j'ai l'impression que c'est l'os qui est mal configuré quelque part. J'ai déjà remarqué que java, quand tu tente un connection au localhost, il effectue nslookup de ton nom local auprès de ton DNS? Si tu va dans une console et que tu fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nslookup <nom de la machine>.<nom du domaine
    >, est-ce que ca ne sortirait pas 0.0.6.155 par hasard?

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    lorsque je lance un nslookup, il me met comme serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Server:		89.2.0.1
    Address:	89.2.0.1#53
    (89.2.0.1 est un serveur numericable !)

    qui évidemment ne connaît pas mon pc !

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    vous pouvez me lapider si vous le vouez :

    le problème venait bien de ma conf machine : dans mon fichier renseignant le hostname, un numéro était présent (1691, le modèle de mon pc) que j'ai toujours eu l'habitude de mettre lors de l'installation de windows (je suis nouvellement linuxiens), donc modification du hostname avec des lettres et modification du /etc/hosts en rajoutant mon hostname à la fin de la ligne 127.0.0.1 ! et ça marche nickel.

    merci de m'avoir aiguiller sur la voie de la résolution DNS...etc

    (au fait 0.0.6.155 était la conversion de 1691 en héxadécimal !)

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

Discussions similaires

  1. [EJB] java.rmi.ConnectIOException
    Par Jonathan13 dans le forum Weblogic
    Réponses: 1
    Dernier message: 31/08/2008, 21h19
  2. compatibilité Dungeon Master Java 1.05 sous linux ?
    Par Predhunt dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 27/07/2007, 01h47
  3. Problème java.net.SocketException sous linux
    Par loop4 dans le forum Linux
    Réponses: 2
    Dernier message: 27/04/2006, 15h42
  4. Java sous linux
    Par ingenieur2008 dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 23/01/2006, 14h22
  5. [Système][Class-Path]cherche aide sous java pour fedoracore ou linux
    Par mickey hollywood dans le forum Général Java
    Réponses: 4
    Dernier message: 29/03/2005, 01h13

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