[RMI] problème de création d'un serveur sous Linux Ubuntu
15 réponses
peipito
Bonjour,
J'ai cr=E9e une application RMI client serveur toute simple =E0 des fins
de test.
L'environnement informatique est compos=E9 d'un pc sous Linux Ubuntu et
d'un pc sous XP.
Lorsque que j'utilise l'application client et serveur sur le m=EAme pc
tout fonctionne.
Lorsque que j'utilise l'application client sous le pc Linux et le
Serveur sous Windows tout fonctionne =E9galement.
Lorsque le serveur est sous Linux et le PC sous windows, alors le
logiciel ne fonctionne plus.
Oui le ping fonctionne que je donne l'adresse ip ou le nom de machine.
Je te montre un bout de code source : ( L'adresse de la machine linux est 192.168.1.11)
Pour l'application serveur sous linux
Naming.rebind( "rmi://192.168.1.11:1099/CalculatorService", c); // J'aurai pu mettre localhost ici le rmiregistry etant lance sur la meme machine } catch (Exception e) { System.out.println("Trouble: " + e); }
Pour le client sous Windows
Calculator c = (Calculator) Naming.lookup("rmi://192.168.1.11/CalculatorService");
Pour la petite histoire j'ai un serveur tomcat sur 192.168.1.11 et je peux acceder a mes sites sans probleme depuis mon pc sous windows.
Insitu wrote:
"peipito" writes:
voici l'exception releve
java.rmi.RemoteExceptionjava.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is: java.net.ConnectException: Connection refused: connect
C'est trés clair: la connexion est refusée ce qui signifie qu'aucune socket n'écoute l'endroit recherché. Un truc qui m'étonne beaucoup, c'est l'adresse 127.0.1.1 !! Normalement, 127.0.0.1 est réservé pour identifier 'localhost', c'est à dire la machine courante ou plus précisèment l'interface locale ( lo sous linux) du système courant. N'y aurait il pas une confusion dans le nommage/adressage des machines ?
Le client essaye de se connecter a une adresse bizarre très probablement localhost et donc il ne trouve pas le serveur qui est lancé sur une autre machine. Est ce que les noms de machines sont correctement définis dans les OS ? Est ce que le ping fonctionne ?
cordialement,
insitu.
Oui le ping fonctionne que je donne l'adresse ip ou le nom de machine.
Je te montre un bout de code source : ( L'adresse de la machine linux
est 192.168.1.11)
Pour l'application serveur sous linux
Naming.rebind(
"rmi://192.168.1.11:1099/CalculatorService", c); // J'aurai pu mettre
localhost ici le rmiregistry etant lance sur la meme machine
} catch (Exception e) {
System.out.println("Trouble: " + e);
}
Pour le client sous Windows
Calculator c = (Calculator)
Naming.lookup("rmi://192.168.1.11/CalculatorService");
Pour la petite histoire j'ai un serveur tomcat sur 192.168.1.11 et je
peux acceder a mes sites sans probleme depuis mon pc sous windows.
Insitu wrote:
"peipito" <frederic.charriere@gmail.com> writes:
voici l'exception releve
java.rmi.RemoteExceptionjava.rmi.ConnectException:
Connection refused to host: 127.0.1.1; nested exception is:
java.net.ConnectException: Connection refused: connect
C'est trés clair: la connexion est refusée ce qui signifie qu'aucune
socket n'écoute l'endroit recherché. Un truc qui m'étonne beaucoup,
c'est l'adresse 127.0.1.1 !!
Normalement, 127.0.0.1 est réservé pour identifier 'localhost', c'est
à dire la machine courante ou plus précisèment l'interface locale ( lo
sous linux) du système courant. N'y aurait il pas une confusion dans
le nommage/adressage des machines ?
Le client essaye de se connecter a
une adresse bizarre très probablement localhost et donc il ne trouve
pas le serveur qui est lancé sur une autre machine. Est ce que les
noms de machines sont correctement définis dans les OS ? Est ce que le
ping fonctionne ?
Oui le ping fonctionne que je donne l'adresse ip ou le nom de machine.
Je te montre un bout de code source : ( L'adresse de la machine linux est 192.168.1.11)
Pour l'application serveur sous linux
Naming.rebind( "rmi://192.168.1.11:1099/CalculatorService", c); // J'aurai pu mettre localhost ici le rmiregistry etant lance sur la meme machine } catch (Exception e) { System.out.println("Trouble: " + e); }
Pour le client sous Windows
Calculator c = (Calculator) Naming.lookup("rmi://192.168.1.11/CalculatorService");
Pour la petite histoire j'ai un serveur tomcat sur 192.168.1.11 et je peux acceder a mes sites sans probleme depuis mon pc sous windows.
Insitu wrote:
"peipito" writes:
voici l'exception releve
java.rmi.RemoteExceptionjava.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is: java.net.ConnectException: Connection refused: connect
C'est trés clair: la connexion est refusée ce qui signifie qu'aucune socket n'écoute l'endroit recherché. Un truc qui m'étonne beaucoup, c'est l'adresse 127.0.1.1 !! Normalement, 127.0.0.1 est réservé pour identifier 'localhost', c'est à dire la machine courante ou plus précisèment l'interface locale ( lo sous linux) du système courant. N'y aurait il pas une confusion dans le nommage/adressage des machines ?
Le client essaye de se connecter a une adresse bizarre très probablement localhost et donc il ne trouve pas le serveur qui est lancé sur une autre machine. Est ce que les noms de machines sont correctement définis dans les OS ? Est ce que le ping fonctionne ?
cordialement,
insitu.
Insitu
"peipito" writes:
Oui le ping fonctionne que je donne l'adresse ip ou le nom de machine.
Je te montre un bout de code source : ( L'adresse de la machine linux est 192.168.1.11)
C'est quoi l'adresse 127.0.0.1 qui apparaît dans le stacktrace ?
Pour l'application serveur sous linux
Naming.rebind( "rmi://192.168.1.11:1099/CalculatorService", c); // J'aurai pu mettre localhost ici le rmiregistry etant lance sur la meme machine } catch (Exception e) { System.out.println("Trouble: " + e); }
Extrait de la javadoc (java.rmi.Naming): " The Naming class provides methods for storing and obtaining references to remote objects in a remote object registry. Each method of the Naming class takes as one of its arguments a name that is a java.lang.String in URL format (without the scheme component) of the form:
//host:port/name "
Est-il possible de voir le code complet ? (éventuellement par mail)
cordialement,
insitu.
"peipito" <frederic.charriere@gmail.com> writes:
Oui le ping fonctionne que je donne l'adresse ip ou le nom de machine.
Je te montre un bout de code source : ( L'adresse de la machine linux
est 192.168.1.11)
C'est quoi l'adresse 127.0.0.1 qui apparaît dans le stacktrace ?
Pour l'application serveur sous linux
Naming.rebind(
"rmi://192.168.1.11:1099/CalculatorService", c); // J'aurai pu mettre
localhost ici le rmiregistry etant lance sur la meme machine
} catch (Exception e) {
System.out.println("Trouble: " + e);
}
Extrait de la javadoc (java.rmi.Naming):
" The Naming class provides methods for storing and obtaining references
to remote objects in a remote object registry. Each method of the
Naming class takes as one of its arguments a name that is a
java.lang.String in URL format (without the scheme component) of the
form:
//host:port/name "
Est-il possible de voir le code complet ? (éventuellement par mail)
Oui le ping fonctionne que je donne l'adresse ip ou le nom de machine.
Je te montre un bout de code source : ( L'adresse de la machine linux est 192.168.1.11)
C'est quoi l'adresse 127.0.0.1 qui apparaît dans le stacktrace ?
Pour l'application serveur sous linux
Naming.rebind( "rmi://192.168.1.11:1099/CalculatorService", c); // J'aurai pu mettre localhost ici le rmiregistry etant lance sur la meme machine } catch (Exception e) { System.out.println("Trouble: " + e); }
Extrait de la javadoc (java.rmi.Naming): " The Naming class provides methods for storing and obtaining references to remote objects in a remote object registry. Each method of the Naming class takes as one of its arguments a name that is a java.lang.String in URL format (without the scheme component) of the form:
//host:port/name "
Est-il possible de voir le code complet ? (éventuellement par mail)
cordialement,
insitu.
peipito
J'ai finalement supprimer mon XP et je l'ai remplacé par une UBUNTU Desktop.
J'ai recompiler mon fichier et relancer le client.
Voici l'erreur que je recupere :
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:574) at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185) at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:94) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObje ctInvocationHandler.java:179) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocation Handler.java:132) at $Proxy0.sub(Unknown Source) at CalculatorClient.main(CalculatorClient.java:8) Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:507) at java.net.Socket.connect(Socket.java:457) at java.net.Socket.<init>(Socket.java:365) at java.net.Socket.<init>(Socket.java:178) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocket Factory.java:22) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocket Factory.java:128) at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569) ... 7 more
J'ai finalement supprimer mon XP et je l'ai remplacé par une UBUNTU
Desktop.
J'ai recompiler mon fichier et relancer le client.
Voici l'erreur que je recupere :
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:574)
at
sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
at
sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:94)
at
java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObje ctInvocationHandler.java:179)
at
java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocation Handler.java:132)
at $Proxy0.sub(Unknown Source)
at CalculatorClient.main(CalculatorClient.java:8)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:507)
at java.net.Socket.connect(Socket.java:457)
at java.net.Socket.<init>(Socket.java:365)
at java.net.Socket.<init>(Socket.java:178)
at
sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocket Factory.java:22)
at
sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocket Factory.java:128)
at
sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569)
... 7 more
J'ai finalement supprimer mon XP et je l'ai remplacé par une UBUNTU Desktop.
J'ai recompiler mon fichier et relancer le client.
Voici l'erreur que je recupere :
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:574) at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185) at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:94) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObje ctInvocationHandler.java:179) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocation Handler.java:132) at $Proxy0.sub(Unknown Source) at CalculatorClient.main(CalculatorClient.java:8) Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:507) at java.net.Socket.connect(Socket.java:457) at java.net.Socket.<init>(Socket.java:365) at java.net.Socket.<init>(Socket.java:178) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocket Factory.java:22) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocket Factory.java:128) at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569) ... 7 more
Insitu
"peipito" writes:
J'ai finalement supprimer mon XP et je l'ai remplacé par une UBUNTU Desktop.
J'ai recompiler mon fichier et relancer le client.
Voici l'erreur que je recupere :
java.rmi.ConnectException: Connection refused to host: 127.0.1.1;
Franchement, je ne comprends pas d'où vient cette adresse ?!
insitu.
"peipito" <frederic.charriere@gmail.com> writes:
J'ai finalement supprimer mon XP et je l'ai remplacé par une UBUNTU
Desktop.
J'ai recompiler mon fichier et relancer le client.
Voici l'erreur que je recupere :
java.rmi.ConnectException: Connection refused to host: 127.0.1.1;
Franchement, je ne comprends pas d'où vient cette adresse ?!
J'ai finalement supprimer mon XP et je l'ai remplacé par une UBUNTU Desktop.
J'ai recompiler mon fichier et relancer le client.
Voici l'erreur que je recupere :
java.rmi.ConnectException: Connection refused to host: 127.0.1.1;
Franchement, je ne comprends pas d'où vient cette adresse ?!
insitu.
mikkel.kamstrup
Insitu wrote:
"peipito" writes:
J'ai finalement supprimer mon XP et je l'ai remplacé par une UBUNTU Desktop.
J'ai recompiler mon fichier et relancer le client.
Voici l'erreur que je recupere :
java.rmi.ConnectException: Connection refused to host: 127.0.1.1;
Franchement, je ne comprends pas d'où vient cette adresse ?!
insitu.
I had this exact problem too. I changed the line in my /etc/hosts from: 127.0.1.1 <my_machine_name>
to: 130.225.24.96 <my_machine_name>
My take on the problem is as follows: The java rmi registry gets a Naming.lookup request, it resolves the request and returns the ip to the machine running the requested service. Since my machine name mapped to 127.0.1.1 in /etc/hosts it returned this ip => other machines running remote methods try and invoke them on 127.0.1.1.
Insitu wrote:
"peipito" <frederic.charriere@gmail.com> writes:
J'ai finalement supprimer mon XP et je l'ai remplacé par une UBUNTU
Desktop.
J'ai recompiler mon fichier et relancer le client.
Voici l'erreur que je recupere :
java.rmi.ConnectException: Connection refused to host: 127.0.1.1;
Franchement, je ne comprends pas d'où vient cette adresse ?!
insitu.
I had this exact problem too. I changed the line in my /etc/hosts from:
127.0.1.1 <my_machine_name>
to:
130.225.24.96 <my_machine_name>
My take on the problem is as follows: The java rmi registry gets a
Naming.lookup request, it resolves the request and returns the ip to
the machine running the requested service. Since my machine name mapped
to 127.0.1.1 in /etc/hosts it returned this ip => other machines
running remote methods try and invoke them on 127.0.1.1.
J'ai finalement supprimer mon XP et je l'ai remplacé par une UBUNTU Desktop.
J'ai recompiler mon fichier et relancer le client.
Voici l'erreur que je recupere :
java.rmi.ConnectException: Connection refused to host: 127.0.1.1;
Franchement, je ne comprends pas d'où vient cette adresse ?!
insitu.
I had this exact problem too. I changed the line in my /etc/hosts from: 127.0.1.1 <my_machine_name>
to: 130.225.24.96 <my_machine_name>
My take on the problem is as follows: The java rmi registry gets a Naming.lookup request, it resolves the request and returns the ip to the machine running the requested service. Since my machine name mapped to 127.0.1.1 in /etc/hosts it returned this ip => other machines running remote methods try and invoke them on 127.0.1.1.