java.net.ConnectException: connessione scaduta: connetti?

Ho usato RMI nel mio codice:

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); } } } 

Questi sono 4 file .java scritti.

Quindi compili tutti questi rmic AddServerImpl . rmic AddServerImpl creo uno stub usando rmic AddServerImpl . Dopo di che avvio il registro rmi sul lato server usando start rmiregistry . Quindi avvio il server utilizzando l’ java AddServer e infine il client che utilizza java AddClient 27.60.200.80 5 9 . Ma non succede nulla

L’eccezione che viene lanciata sul lato client è java.net.ConnectException : connection timed out : connect

Qual è la ragione e come posso risolvere questo?

    Sulla macchina client questi sono i seguenti file .class AddClient.class AddServerImpl.class AddServerImpl_Stub.class e sul lato server AddServer.class AddServerImpl.class AddServerImpl_Stub.class AddServerIntf.class

    Il messaggio di errore dice tutto: la tua connessione è scaduta. Ciò significa che la tua richiesta non ha ricevuto una risposta entro un certo lasso di tempo (predefinito). Le ragioni per cui non è stata ricevuta alcuna risposta è probabile che sia una delle seguenti:

    • a) IP / dominio o porta non sono corretti
    • b) L’IP / dominio o la porta (cioè il servizio) è giù
    • c) L’IP / dominio impiega più tempo del timeout predefinito per rispondere
    • d) Hai un firewall che blocca le richieste o le risposte su qualunque porta stai usando
    • e) Hai un firewall che blocca le richieste a quel particolare host
    • f) L’accesso a Internet non funziona

    Nota che firewall, porte o IP possono essere installati dal tuo ISP

    Numero (1): l’IP non era corretto – è la risposta corretta. Il file / etc / hosts (noto anche come C: \ Windows \ system32 \ drivers \ etc \ hosts) aveva una voce errata per il nome del computer locale. Corretto il file ‘hosts’ e Camel funziona molto bene. Grazie per il puntatore.

    Se stai indicando la configurazione in un dominio (ad es. Fabrikam.com), esegui un NSLOOKUP per verificare che tutti gli IP di risposta siano validi e possano essere connessi alla porta 389:

     NSLOOKUP fabrikam.com Test-NetConnection  -port 389 

    Eccezione: java.net.ConnectException

    Ciò significa che la tua richiesta non ha ricevuto risposta dal server nel tempo previsto. E loro sono alcune ragioni per questa eccezione:

    • Troppe richieste che sovraccaricano il server
    • Richiesta di perdita di pacchetti a causa di una configurazione di rete errata o di un sovraccarico della linea
    • A volte il firewall consuma il pacchetto di richiesta prima di prelevare severamente
    • Dipende anche dalla configurazione del pool di connessione thread e dallo stato corrente del pool di connessioni
    • Pacchetto di risposta perso durante la transizione

    Se si prevede una risposta ritardata dal sistema di destinazione e si ritiene che DevTest stia terminando la connessione, è ansible aggiungere sotto due proprietà al file local.properties e riavviare i componenti:

     lisa.http.timeout.connection=0 lisa.http.timeout.socket=0 lisa.http.timeout.connection 

    Timeout HTTP (in millisecondi) – Per estendere il timeout per attendere indefinitamente, impostare i valori su zero.

     Default: 15000 lisa.http.timeout.socket 

    Timeout HTTP (in millisecondi). Per estendere il timeout per attendere indefinitamente, impostare il valore su zero.

     Default: 180000