Sto lavorando su un gioco RMI a linea di comando, ma, ogni volta che provo al mio servizio, ricevo un errore come questo:Java RMI Collegare Eccezione: Il collegamento ha rifiutato di ospitare/timeout
java.rmi.ConnectException: Connection refused to host: 192.168.56.1; nested exception is:
java.net.ConnectException: Connection timed out: connect
Questo è la classe principale per il mio Server
:
public class RMIWar {
public static void main(String[] args) throws RemoteException, MalformedURLException {
try {
Controle obj = new Controle(4);
Registry reg = LocateRegistry.createRegistry(1099);
System.out.println("Server is ready");
reg.rebind("CtrlServ", obj);
}
catch (Exception e) {
System.out.println("Error: " + e.toString());
}
}
}
il principale per il mio Client
classe:
public class RMIWarClient {
public static void main(String[] args) throws RemoteException, MalformedURLException, NotBoundException {
try {
Registry registry = LocateRegistry.getRegistry("localhost");
ControleInt ctrl = (ControleInt) registry.lookup("CtrlServ");
System.out.println("CtrlServ found...\n");
BioRMI bio = new BioRMI(null, 5,5,5);
ctrl.thRegister("Test", bio.atk, bio.def, bio.agi);
}
catch (Exception e) {
System.out.println("Error: " + e);
}
}
}
Qualche suggerimento?
Nulla di ciò rappresenterebbe un timeout della connessione. – EJP
una porta firewalled –
@EJP Informazioni sul timeout della connessione, ho scritto: "Verifica se la tua porta 1099 è disponibile". Ciò significherebbe verificare se la porta è disponibile o protetta da firewall. La mia nota sull'avvio di rmiregistry è perché l'OP non ha scritto nulla a riguardo, e perché, a volte, la mancata esecuzione del servizio è la ragione di una connessione rifiutata. Se il Cliente desidera eseguire un metodo di Server, ma se il Server non è stato eseguito localmente con il servizio, il Cliente non eseguirà mai il metodo. –