web-dev-qa-db-fra.com

java.net.ConnectException: la connexion a expiré: connect?

J'ai utilisé le RMI dans mon code:

 import Java.rmi.*;

 public interface AddServerIntf extends Remote {
  double add(double d1,double d2) throws RemoteException;
 }

import Java.rmi.*;
import Java.rmi.server.*;

public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf {
  public AddServerImpl() throws RemoteException {
  }

 public double add(double d1,double d2) throws RemoteException {
  return d1+d2;
 }
}  

import Java.net.*;
import Java.rmi.*;

public class AddServer {
   public static void main(String args[]) {
    try {
     AddServerImpl addServerImpl=new AddServerImpl();
     Naming.rebind("AddServer",addServerImpl);
    }  catch(Exception exc) {
          System.out.println(exc);
       }
   }
}

import Java.rmi.*;
public class AddClient {
  public static void main(String args[]) {
     try {
       String Url="rmi://"+args[0]+"/AddServer";
       AddServerIntf addServerIntf=(AddServerIntf)Naming.lookup(Url);
       System.out.println("The first number is "+args[1]);
       double d1=Double.valueOf(args[1]).doubleValue();
       System.out.println("The second number is: "+args[2]);
       double d2=Double.valueOf(args[2]).doubleValue();
       System.out.println("The Sum is: "+addServerIntf.add(d1,d2));
     }  catch(Exception exc) {
         System.out.println(exc);
       }
   }
 }

Ce sont 4 fichiers .Java écrits.

Ensuite, je compile tous ces fichiers. Ensuite, je crée une stub en utilisant rmic AddServerImpl. Après cela, je lance le registre rmi côté serveur en utilisant start rmiregistry. Puis je lance le serveur en utilisant Java AddServer et enfin le client en utilisant Java AddClient 27.60.200.80 5 9.Mais rien ne se passe

L'exception émise côté client est Java.net.ConnectException : connection timed out : connect

Quelle est la raison et comment puis-je résoudre ce problème?

Sur l'ordinateur client, il s'agit des fichiers .class suivants AddClient.class AddServerImpl.class AddServerImpl_Stub.class et du côté serveur AddServer.class AddServerImpl.class AddServerImpl_Stub.class AddServerIntf.class

11
saplingPro

Le message d'erreur dit tout: votre connexion a expiré. Cela signifie que votre demande n'a pas reçu de réponse dans un délai (par défaut). Les raisons pour lesquelles aucune réponse n'a été reçue sont probablement l'une des suivantes:

  • a) L'IP/domaine ou le port est incorrect 
  • b) L'IP/domaine ou le port (i.e service) est en panne 
  • c) L'adresse IP/domaine prend plus de temps que votre délai d'attente par défaut pour répondre 
  • d) Vous avez un pare-feu qui bloque les demandes ou les réponses sur le port que vous utilisez 
  • e) Vous avez un pare-feu qui bloque les demandes à cet hôte particulier 
  • f) Votre accès internet est en panne 

Notez que des pare-feu et un blocage de port ou d’IP peuvent être en place chez votre FAI

32
Richard H

Exception: Java.net.ConnectException

Cela signifie que votre demande n'a pas reçu de réponse du serveur dans les délais impartis. Et voici quelques raisons de cette exception:

  • Trop de requêtes surchargeant le serveur
  • Demande de perte de paquet en raison d'une configuration réseau incorrecte ou d'une surcharge de ligne
  • Parfois, le pare-feu consomme le paquet de demande avant que le serveur obtienne
  • Dépend également de la configuration du pool de connexions d'unités d'exécution et de l'état actuel du pool de connexions.
  • Paquet de réponse perdu pendant la transition
0
Radadiya Nikunj

Nombre (1): L'adresse IP était incorrecte - est la bonne réponse. Le fichier/etc/hosts (a.k.a . C:\Windows\system32\drivers\etc\hosts) comportait une entrée incorrecte pour le nom de la machine locale . Corrigé le fichier 'hosts' et Camel fonctionne très bien. Merci pour le pointeur.

0
Tater_Head