Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2928 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java][RMI] Connection refused to host

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java][RMI] Connection refused to host

n°316984
desch3
Posté le 24-02-2003 à 23:56:20  profilanswer
 


Bonjour a tous,  
 
J'ai fait un prog RMI super simple, juste une fonction pour afficher HelloWorld.  
 
Mais j'ai quelques pb.  
 
Lorsque je met tous les fichiers dans le même répertoire et que je lance le serveur, le client marche nickel.  
 
Mais lorsque je veux y accéder via le net (ou dans des répertoires séparés), il me sort se message d'erreur :  
Connection refused to host: 192.168.0.1; nested exception is:  
java.net.ConnectException: Connection refused: connect  
Message en entier:  
Code:  

Code :
  1. Connection refused to host: 192.168.0.1; nested exception is:
  2.         java.net.ConnectException: Connection refused: connect
  3. java.rmi.ConnectException: Connection refused to host: 192.168.0.1; nested excep
  4. tion is:
  5.         java.net.ConnectException: Connection refused: connect
  6.         at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:567)
  7.         at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185
  8. )
  9.         at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
  10.         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:101)
  11.         at HelloworldImpl_Stub.showHello(Unknown Source)
  12.         at HelloClient.<init>(HelloClient.java:21)
  13.         at HelloClient.main(HelloClient.java:42)
  14. Caused by: java.net.ConnectException: Connection refused: connect
  15.         at java.net.PlainSocketImpl.socketConnect(Native Method)
  16.         at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:295)
  17.         at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:161)
  18.         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:148)
  19.         at java.net.Socket.connect(Socket.java:425)
  20.         at java.net.Socket.connect(Socket.java:375)
  21.         at java.net.Socket.<init>(Socket.java:290)
  22.         at java.net.Socket.<init>(Socket.java:118)
  23.         at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirect
  24. SocketFactory.java:22)
  25.         at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMaster
  26. SocketFactory.java:122)
  27.         at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:562)
  28.         ... 6 more


 
 
Et je ne vois pas d'ou cela vient.  
Je precise que je n'ai pas de firewall ou autre qui pourrait bloquer la connexion et quand je fais ca :  

Code :
  1. Registry rep = (Registry)LocateRegistry.getRegistry("ziade.no-ip.com" );
  2. _serveur = (Helloworld)rep.lookup("HELLO_WORLD" );


Ca fonctionne très bien.  
Mais ca plante qd j'appelle la methode distante a ce niveau :  

Code :
  1. System.out.println(_serveur.showHello());


(j'utilise le jdk 1.4.0 sous win Xp)  
 
Merci bcp  
David  

mood
Publicité
Posté le 24-02-2003 à 23:56:20  profilanswer
 

n°317004
darklord
You're welcome
Posté le 25-02-2003 à 00:18:54  profilanswer
 

Salut David,
 
Ton problème vient du fait que tu fais un lookup sur le hostname. Il faut que tu lances ton server RMI en lui passant le hostname explicitement.
 

Citation :


java -Djava.rmi.server.hostname=ziade.no-ip.com TonServerRMI


 
Une solution plus rapide, tu remplaces le nom de ta machine par son IP et ca fonctionenra immédiatement.
 

Citation :


Registry rep = (Registry)LocateRegistry.getRegistry("192.168.0.1" );  


 
Si tu es sous XP, vérifie que ton firewall n'est pas activé. Si tu veux une solution pour passer à travers un firewall via des ports prédéfinis, demande j'ai aussi la solution
 
A+
 
PS : a noter que je ne procède pas ainsi pour accéder un serveur distant. Plutot j'utilise un URL rmi du genre rmi://192.168.0.1/HELLO_WORLD


Message édité par darklord le 25-02-2003 à 00:22:35

---------------
Just because you feel good does not make you right
n°318596
desch3
Posté le 26-02-2003 à 17:50:39  profilanswer
 

J'ai fait comme tu dis, mais tjs le même pb :-( par contre, le client est également contacté sur le port 1099 pour les echanges ? j'ai testé avec un pote qui a un firewall, mais le serveur n'en a pas.
 
Encore merci
David

n°318600
darklord
You're welcome
Posté le 26-02-2003 à 17:57:09  profilanswer
 

montre ton code ou mp si tu veux pas qu'il soit public


---------------
Just because you feel good does not make you right
n°320584
leonhard
Posté le 28-02-2003 à 22:21:56  profilanswer
 

desch3 a écrit :


Bonjour a tous,  
 
J'ai fait un prog RMI super simple, juste une fonction pour afficher HelloWorld.  
 
Mais j'ai quelques pb.  
 
Lorsque je met tous les fichiers dans le même répertoire et que je lance le serveur, le client marche nickel.  
 
Mais lorsque je veux y accéder via le net (ou dans des répertoires séparés), il me sort se message d'erreur :  
Connection refused to host: 192.168.0.1; nested exception is:  
java.net.ConnectException: Connection refused: connect  
Message en entier:  
Code:  

Code :
  1. Connection refused to host: 192.168.0.1; nested exception is:
  2.         java.net.ConnectException: Connection refused: connect
  3. java.rmi.ConnectException: Connection refused to host: 192.168.0.1; nested excep
  4. tion is:
  5.         java.net.ConnectException: Connection refused: connect
  6.         at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:567)
  7.         at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185
  8. )
  9.         at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
  10.         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:101)
  11.         at HelloworldImpl_Stub.showHello(Unknown Source)
  12.         at HelloClient.<init>(HelloClient.java:21)
  13.         at HelloClient.main(HelloClient.java:42)
  14. Caused by: java.net.ConnectException: Connection refused: connect
  15.         at java.net.PlainSocketImpl.socketConnect(Native Method)
  16.         at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:295)
  17.         at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:161)
  18.         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:148)
  19.         at java.net.Socket.connect(Socket.java:425)
  20.         at java.net.Socket.connect(Socket.java:375)
  21.         at java.net.Socket.<init>(Socket.java:290)
  22.         at java.net.Socket.<init>(Socket.java:118)
  23.         at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirect
  24. SocketFactory.java:22)
  25.         at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMaster
  26. SocketFactory.java:122)
  27.         at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:562)
  28.         ... 6 more


 
 
Et je ne vois pas d'ou cela vient.  
Je precise que je n'ai pas de firewall ou autre qui pourrait bloquer la connexion et quand je fais ca :  

Code :
  1. Registry rep = (Registry)LocateRegistry.getRegistry("ziade.no-ip.com" );
  2. _serveur = (Helloworld)rep.lookup("HELLO_WORLD" );


Ca fonctionne très bien.  
Mais ca plante qd j'appelle la methode distante a ce niveau :  

Code :
  1. System.out.println(_serveur.showHello());


(j'utilise le jdk 1.4.0 sous win Xp)  
 
Merci bcp  
David  
 


 
tu peux montrer comment tu fais pour lancer le serveur... J'aurais plutôt penché pour un policy file contenant un truc du genre
 
permission java.net.SocketPermission "<client host>:<ports>" "accept,connect"
 
ou un truc du genre  

n°320591
desch3
Posté le 28-02-2003 à 22:33:30  profilanswer
 

J'ai décidé de tout reprendre a 0.
 
J'ai refait un serveur suivant pas a pas les instruction d'un bouquin, et maintenant j'ai un pb lorsque je lance mon serveur :

Code :
  1. java.security.AccessControlException : Acces Denied


 
Ca doit venir de mon .policy pourtant :

Code :
  1. grant
  2. {
  3.     permission java.security.AllPermission "", "accept, connect";
  4.     permission java.net.SocketPermission "*:1024-65535", "accept, connect, listen, resolve";   
  5.     permission java.net.SocketPermission "*:80","connect";
  6.    
  7. };


 
et je lance comme cela :

Code :
  1. D:\Synthese2>java -Djava.rmi.server.codebase=file:/d:\Synthese2\rmi -Djava.rmi.server.hostname=localhost rmi.Reverse -Djava.security.policy=policy.all


 
pfff.
 
Merci
David

n°320594
darklord
You're welcome
Posté le 28-02-2003 à 22:41:25  profilanswer
 

ton problème est intéressant ...
Tu ne peux pas ajouter des bouts de code?

n°320597
desch3
Posté le 28-02-2003 à 22:46:47  profilanswer
 

si si, voila la structure des fichiers sur mon dur :
 
d:\Synthese2\Reverse.java
d:\Synthese2\ReverseInterface.java
 
le code de ReverseInterface :

Code :
  1. package rmi;
  2. import java.rmi.Remote;
  3. import java.rmi.RemoteException;
  4. public interface ReverseInterface extends Remote {
  5. String reverseString(String originalString) throws RemoteException;
  6. }


 
Le code de Reverse.java :

Code :
  1. package rmi;
  2. import java.rmi.*;
  3. import java.rmi.server.*;
  4. public class Reverse extends UnicastRemoteObject implements ReverseInterface {
  5. public Reverse() throws RemoteException {
  6.  super();
  7. }
  8. public String reverseString (String originalString) throws RemoteException {
  9.  return "coucou c le serveur";
  10. }
  11. public static void main(String[] args) {
  12.  if (System.getSecurityManager() == null) {
  13.   System.setSecurityManager(new RMISecurityManager());
  14.  }
  15.  String name = "//localhost/rmi.Reverse";
  16.  try {
  17.   Reverse r = new Reverse();
  18.   Naming.rebind(name,r);
  19.   System.out.println("Objet lié" );
  20.  }
  21.  catch(Exception e) {
  22.   System.out.println("Erreur de liaison de l'objet" );
  23.   System.out.println(e.toString());
  24.  }
  25. }
  26. }


 
Je compil :
donc je me retrouve avec :
d:\Synthese2\rmi\Reverse.class
d:\Synthese2\rmi\ReverseInterface.class
 
Un rmic pour avoir le skel et le stub
 
Je lance la registry depuis une autre fenetre dos
 
Et je lance mon serveur et j'ai l'erreur decrite plus haut.
 
Merci de me filer un coup de main, je galere.
 
Ca pourrait venir de mon windows ? j'ai pas de firewall, mm celui integré a xp est désactive. La version de java ??
 

n°320623
darklord
You're welcome
Posté le 28-02-2003 à 23:47:17  profilanswer
 

Citation :


String name = "rmi://localhost/Reverse


 
essaie avec ca

n°320628
desch3
Posté le 28-02-2003 à 23:50:43  profilanswer
 

Toujours la même erreur
:-(

mood
Publicité
Posté le 28-02-2003 à 23:50:43  profilanswer
 

n°320653
darklord
You're welcome
Posté le 01-03-2003 à 00:23:52  profilanswer
 

bon en virant le securitymanager ça fonctionne au moins? :o

n°320661
the real m​oins moins
Posté le 01-03-2003 à 00:46:47  profilanswer
 

euh  
 
 

Citation :

d:\Synthese2\Reverse.java

 
 

Citation :

package rmi

 
 
y'a un truc qui cloche non? [:gratgrat]
 
edit: euh ouais bon j'ai rien, les class sont au bon endroit :o


Message édité par the real moins moins le 01-03-2003 à 00:47:30

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°320735
desch3
Posté le 01-03-2003 à 13:28:58  profilanswer
 

Bon, j'ai desintallé java puis reinstallé au cas ou, mais toujours la même chose.
 
Quand j'enleve le security manager, j'ai une autre exception :

Code :
  1. java.rmi.UnmarshalException


 
Ca commence a me saouler grave la.
 
Tu aurais pas un ptit prog super simple qui fonctionne chez toi que je puisse tester si ca vient de mon pc.
 
Ou sinon tester celui la pour voir.
 
Encore merci

n°320761
nraynaud
lol
Posté le 01-03-2003 à 15:06:05  profilanswer
 

desch3 a écrit :

Bon, j'ai desintallé java puis reinstallé au cas ou, mais toujours la même chose.
 
Quand j'enleve le security manager, j'ai une autre exception :

Code :
  1. java.rmi.UnmarshalException


 
Ca commence a me saouler grave la.
 
Tu aurais pas un ptit prog super simple qui fonctionne chez toi que je puisse tester si ca vient de mon pc.
 
Ou sinon tester celui la pour voir.
 
Encore merci


 
Un petit TP qu'on a eu :
http://beru.univ-brest.fr/~singhof [...] MI/tp.html
il marche.

n°320788
benou
Posté le 01-03-2003 à 16:36:56  profilanswer
 

j'ai des vagues souvenir de RMI ...
le coup du unmarshal, c'est pas un problème avec les squeletons ???

n°320797
desch3
Posté le 01-03-2003 à 17:01:06  profilanswer
 

Je ne sais pas si c a cause des sueletons, mais ils sont bien présent.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java][RMI] Connection refused to host

 

Sujets relatifs
insertion de php dans script java qui fait parti d'une page php[JAVA] - On en fait quoi des classes ?
[Java] Mais à quoi sert instanceof ?[Java] Bizarerie du MouseListener
[JAVA] - Tester la non nullité d'un champ - Besoin Aide 1 min maxi ![java]Ouvrir une popup html depuis le bouton de mon applet??
un RAD gratuit pour developper an JAVA?[java] qui utilisent eclipse ?!
[JAVA] - Projet d'orienté Objet - Problème clair & détaillé - BloquéAller chercehr une image sur le net, à partir d'un prog en JAVA
Plus de sujets relatifs à : [Java][RMI] Connection refused to host


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR