TP7-RMI Question 1:Connection refused: connect

Conception de logiciels Intranet : patrons et canevas

Modérateurs : Douin, graffion

Répondre
GANKAMA
Messages : 54
Inscription : 26 oct. 2017 16:51

TP7-RMI Question 1:Connection refused: connect

Message par GANKAMA » 25 mars 2018 10:45

Bonjour à tous et à toutes.
J'ai un soucis lors du démarrage du service RMI.Mon serveur ServeurWeb8086 demarre bien ,mais lorsque je lance le service RMI, j'ai cette erreur:

Serveur : Construction de l?implémentation
Objet InformationsRMI enregistré dans RMIregistry
Erreur de liaison de l'objet iRmiD
java.rmi.ConnectException: Connection refused to host: 192.168.0.33; nested exception is:
java.net.ConnectException: Connection refused: connect

Voici mon extrait de la class ServeurDInformations:

try {
System.out.println("Serveur : Construction de l’implémentation");
InformationsRMIDistant iRmiD= new InformationsRMIDistant(new Services());
System.out.println("Objet InformationsRMI enregistré dans RMIregistry");
Naming.rebind(iRmiD.nomDuService,iRmiD);//incription du service dans l'annuaire
System.out.println("Attente des invocations des clients ");
}

Cordialement

julien_24
Messages : 46
Inscription : 17 oct. 2017 13:41

Re: TP7-RMI Question 1:Connection refused: connect

Message par julien_24 » 25 mars 2018 12:27

Bonjour,

Regarde ton fichier hosts sur ton systeme, ca vient peut etre de la.

cherche des infos sur le web pour avoir plus d'infos

julien

Vivel
Messages : 36
Inscription : 19 févr. 2018 13:27

Re: TP7-RMI Question 1:Connection refused: connect

Message par Vivel » 25 mars 2018 12:48

en lisant ton erreur on dirait un prob d'interface. Tu as bien recompilé et copié les .class de ton interface sur les serveurs et client ?
ensuite relance tout…
bon courage
virginie

NAVARRO
Messages : 35
Inscription : 02 oct. 2016 13:44

Re: TP7-RMI Question 1:Connection refused: connect

Message par NAVARRO » 25 mars 2018 22:55

Hello,

J'ai le même message.
D:\travail vincent\CNAM\cours FOD\CYC45 - AISL\NSY102 - conception de logiciels intranet patrons et canevas\TP\tp_rmi>java -cp . -Djava.security.policy=policy.all -Djava.rmi.server.codebase=http://19
2.168.1.22:8086/ question1.ServeurDInformations 192.168.1.22
hostname = 192.168.1.22
enregistrement de l'objet InformationsRMI sur rmi://192.168.1.22:1099/informations
ERREUR: ServeurDInformations :Connection refused to host: 192.168.1.22; nested exception is:
java.net.ConnectException: Connection timed out: connect

es - tu sous windows?

J'ai vérifier mon fichier hosts:
C:\Users\vincent>type C:\Windows\system32\drivers\etc\hosts
127.0.0.1 localhost

Du coup, je me demande si le problème ne vient pas du fait qu'on lance rmiregistry sur le localhost et le serveur http sur l'adresse IP de notre machine au lieu de localhost = 127.0.0.1 ?

c:\tp_rmi\> start java -cp . -Djava.security.policy=policy.all -Djava.rmi.server.codebase=http://localhost:8086/ question1.ServeurDInformations

mais comme notre serveur web ecoute pour moi en 192.168.1.22:8086 ....

Du coup , j'ai essayé de forcer l'adresse IP du serverWEb en changeant le constructeur :
//ServerSocket listen = new ServerSocket(HTTP_PORT);
ServerSocket listen = new ServerSocket(HTTP_PORT,10 , InetAddress.getByName("localhost"));

C:\Users\vincent>netstat -a | find "8086"
TCP 127.0.0.1:8086 vincent-PC:0 LISTENING

Mais cela ne fonctionne toujours pas ! :'(

enregistrement de l'objet InformationsRMI sur rmi://localhost:1099/informations
ERREUR: ServeurDInformations :RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: question1.InformationsRMI

Il reste à trouver ce qui cause ce time out!

enregistrement de l'objet InformationsRMI sur rmi://localhost:1099/informations
ERREUR: ServeurDInformations :Connection refused to host: 192.168.1.22; nested exception is:
java.net.ConnectException: Connection timed out: connect

EDIT: je me suis fait ce petit fichier bat... et j'ai rajouté l'option -Djava.rmi.server.useCodebaseOnly=false pour tester ainsi qu'une ligne comme:
Registry registry = LocateRegistry.getRegistry(hostname, 1099);

cls
start rmiregistry
start java -cp . ServeurWeb8086
pause
start java -cp . -Djava.security.policy=policy.all -Djava.rmi.server.codebase=http://localhost:8086/ -Djava.rmi.server.useCodebaseOnly=false question1.ServeurDInformations 127.0.0.1
netstat -a |find /i "1099"
netstat -a |find /i "8086"
pause
java -cp . -Djava.security.policy=policy.all -Djava.rmi.server.useCodebaseOnly=false question1.Client

.....
j'ai toujours le même problème de time out

slash
Messages : 62
Inscription : 04 nov. 2017 2:45

Re: TP7-RMI Question 1:Connection refused: connect

Message par slash » 26 mars 2018 15:48

Bonjour à tous,

J'ai eu le même problème, et après moultes essais j'ai enfin mon serveur démarré...

Il faut bien démarrer rmiregistry (hors du répertoire du TP) avec cette commande :
start rmiregistry -J-Djava.rmi.server.useCodebaseOnly=false

Puis se placer dans le répertoire du TP et démarrer le serveur Web : start java -cp . ServeurWeb8086

Enfin, démarrer le serveur d'informations avec :
start java -cp . -Djava.security.policy=policy.all -Djava.rmi.server.codebase=http://localhost:8086/ -Djava.rmi.server.logCalls=true -Djava.rmi.server.useCodebaseOnly=false question1.ServeurDInformations
Dernière édition par slash le 26 mars 2018 16:16, édité 1 fois.

NAVARRO
Messages : 35
Inscription : 02 oct. 2016 13:44

Re: TP7-RMI Question 1:Connection refused: connect

Message par NAVARRO » 26 mars 2018 15:52

Merci slash, j'essaye ce soir..

J'ai bien passé au moins 2 ou 3h a essayer diverses solutions hier soir et à lire des forums pour ce "connection refused"

Du coup , je ne pense pas avoir le temps de finir le TP! mais on verra bien :)

Vincent.

slash
Messages : 62
Inscription : 04 nov. 2017 2:45

Re: TP7-RMI Question 1:Connection refused: connect

Message par slash » 26 mars 2018 17:08

Par contre, je suis maintenant coincé avec mon client :

Code : Tout sélectionner

public static void main(String [] args) throws Exception{
        System.setSecurityManager( new RMISecurityManager());
        InformationsRMIDistant infos = null;
        String nom = "rmi://localhost:8086/"+ InformationsRMIDistant.nomDuService;
        try{
            infos = (InformationsRMIDistant) Naming.lookup(nom);
        }catch(Exception e){          
            throw e;
        }
        try{
            System.out.println(infos.getDate());
            System.out.println(infos.getProperties().toString());
        }catch(Exception e){throw e;}}
Le Naming.lookup() semble bloqué, sans que je puisse savoir pourquoi (pas d'exception retournée), comme si il recherchait le service sans jamais le trouver. Je lance ce client par cette commande :
start java -cp . -Djava.security.policy=policy.all -Djava.rmi.server.useCodebaseOnly=false question1.Client

Pourtant le serveur d'informations est lancé et le service est normalement bien enregistré :

Code : Tout sélectionner

public static void main(String [] args) throws Exception {
        System.setSecurityManager( new RMISecurityManager());
        try {
            InformationsRMI infoRMID = new InformationsRMIDistant(
                    new Services());
            Naming.rebind(InformationsRMIDistant.nomDuService, infoRMID);
            System.out.println("le serveur: " +
                InformationsRMIDistant.nomDuService +
                " a demarre ");
        }catch(Exception e){throw e;}
    }

Quelqu'un aurait-il une idée ?
Merci de votre aide.

STB
Messages : 25
Inscription : 22 févr. 2017 19:44

Re: TP7-RMI Question 1:Connection refused: connect

Message par STB » 27 mars 2018 9:57

Bonjour Slash,
je n'ai pas vraiment regardé ton code côté serveur, mais côté client tu as en tout cas clairement une erreur. Tu fournis le port du serveur http (8086) au lieu du port de l'annuaire rmi (1099). Ça fonctionne également sans préciser le port.
Bonne continuation,
Stéphane

NAVARRO
Messages : 35
Inscription : 02 oct. 2016 13:44

Re: TP7-RMI Question 1:Connection refused: connect

Message par NAVARRO » 27 mars 2018 13:09

Hello,

J'ai un peu avancé en suivant tes conseils slash avec le rmiregistry : start rmiregistry -J-Djava.rmi.server.useCodebaseOnly=false

J'arrive maintenant a lancé mon serveur et je vois bien les GET sur le serveur web , qui d'ailleurs s'affichent rapidement mais ensuite le serveur me rend la main quelques minutes après comme si le Naming.rebind était très long. ?? alors qu'on est en local...

C'est maintenant côté client que j'ai le problème de connection refused...

N'hésitez pas à lire et relire le cours pour ceux qui galère car il y a finalement beaucoup d'indices et d'explications.

Je trouve, à titre personnel, ce n'est peut être pas votre cas , qu'on a tendance a survoler trop vite le cours et aller sur le TP.
Ce n'est qu'après lorsque je suis bloqué que je me replonge dans le cours pour m'apercevoir qu'il y avait toutes les réponses...

Je vais essayer aussi de faire un set CLASSPATH ce soir en rentrant à la maison pour voir ce que ça donne.
En tout cas, je trouve qu'on passe beaucoup trop de temps sur ce problème rmi :(
J'en suis au moins à 4h ou 5h juste pour essayer de lancer tout sans avoir la garantie derrière que notre code fonctionne !

Bon courage à tous.
Vincent.

slash
Messages : 62
Inscription : 04 nov. 2017 2:45

Re: TP7-RMI Question 1:Connection refused: connect

Message par slash » 27 mars 2018 17:15

Merci pour vos réponses, effectivement je m'étais embrouillé.
Le client se lance bien maintenant.

NAVARRO
Messages : 35
Inscription : 02 oct. 2016 13:44

TP7-RMI :Connection refused: connect et TP JMX Jconsole!

Message par NAVARRO » 17 avr. 2018 0:24

Bonjour à tous,

Je n'ai jamais réussi à faire fonctionner le TP RMI car j'ai toujours le même message de connection refused: connect.
J'ai essayé différente policy de sécurité mais j'ai toujours une sorte de time out...

Pour le TP JMX , je n'arrivais pas à lancer l'outils jconsole non plus... !!!
A force de chercher je me suis rendu compte que mon antivirus avait un firewall... et me bloquait beaucoup de chose de JAVA...

En désactivant le firewall ( c'est celui de windows qui a pris le relai :'( ) mais j'ai réussi à lancer jconsole après avoir beaucoup galéré...
J'ai donc un souci supplémentaire sur mon poste , en plus de la difficulté de faire les TPs JAVA qui ne sont pas forcément simples :p

Pour lancer jconsole j'ai du indiquer le jconsole.exe de BlueJ car celui du jdk 1.8 ne fonctionnait pas a cause d'une histoire de 32 bits et 64 bits...
le message était java.io.IOException : Unable to attach to 32-bit process running under WOW64.

J'ai trouvé l'option -debug et d'autres options qui je ne sais pas si elles servent beaucoup.. (mon problème principal était mon antivirus)
"D:\JAVA\BlueJ_4.1.2\jdk\bin\jconsole.exe" -debug -J-Dcom.sun.management.jmxremote.authenticate=false -J-Dcom.sun.management.jmxremote.ssl=false

Bref si quelqu'un à un idée supplémentaire pour ce problème de connection refused , cela me rendrait vraiment service car je commence à désespérer!

Merci à tous et bon courage.
Vincent.

julien_24
Messages : 46
Inscription : 17 oct. 2017 13:41

Re: TP7-RMI Question 1:Connection refused: connect

Message par julien_24 » 17 avr. 2018 23:47

Salut,

J'ai eu ce problème aussi, j'ai cherché sur le web pour résoudre ce problème, tu tombes généralement sur des soucis de hosts (il faut que tu regardes ton fichier hosts sur ta machine, tu as dû déjà sans doute le faire), après il faut aussi vérifier les ports utilisés sur ta machine (essais de changer le port de ton rmiregistry directement en console au lancement pour voir, tu as du aussi certainement essayer).

Apres essais de mettre ici le message d'erreur au complet (si tu en as un plus explicite que juste connection refused) ici, peut être quelqu'un trouvera.

Bonne chance en tout cas, c'est tres frustrant comme erreur.

julien

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité