我工作的一個RMI命令行的比賽,但是,每當我嘗試我的服務,我收到這樣的錯誤:Java RMI的連接異常:拒絕連接主機/超時
java.rmi.ConnectException: Connection refused to host: 192.168.56.1; nested exception is:
java.net.ConnectException: Connection timed out: connect
這是我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());
}
}
}
主要爲我Client
類:
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);
}
}
}
有何建議?
這些都不會導致連接超時。 – EJP
防火牆端口 –
@EJP關於連接超時,我寫道:「測試你的1099端口是否可用」。這將意味着檢查端口是否可用或防火牆。我關於啓動rmiregistry的說明是因爲OP沒有寫任何有關這方面的內容,並且因爲有時服務的不執行是拒絕連接的原因。如果客戶想要執行服務器的方法,但如果服務器沒有在服務本地運行,則客戶端將永遠不會執行該方法。 –