[Java] RMI ConnectException

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
pincia
Prode Principiante
Messaggi: 12
Iscrizione: venerdì 17 aprile 2015, 15:55
Sesso: Maschile

[Java] RMI ConnectException

Messaggio da pincia »

Salve a tutti,

Alle prime armi con le RMI sto provando a creare una piccola applicazione client/server per lo studio.
Riscontro quest'errore a tempo di esecuzione nel momento in cui vado a registrare lo stub con la rebind.

Codice: Seleziona tutto

java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is: 
	java.net.ConnectException: Connection refused
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
	at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
	at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
	at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:342)
	at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
	at CongressoServer.main(CongressoServer.java:59)
Caused by: java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at java.net.Socket.connect(Socket.java:538)
	at java.net.Socket.<init>(Socket.java:434)
	at java.net.Socket.<init>(Socket.java:211)
	at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
	at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148)
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
	... 5 more
La porzione di codice del server è questa:

Codice: Seleziona tutto

public static void main(String[] args){
	
		try {
			CongressoServer congresso = new CongressoServer();
			Congresso stub = (Congresso) UnicastRemoteObject.exportObject(congresso, 0);
	
		
			Registry r= LocateRegistry.getRegistry();
		
			/* Pubblicazione dello stub nel registry */
			r.rebind("CongressoServer", stub);
		
			System.out.println("Server ready");
		
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
sapete indicarmi una soluzione?

Grazie.
Avatar utente
cortinico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 477
Iscrizione: venerdì 15 maggio 2015, 16:49
Desktop: Unity
Distribuzione: Ubuntu 15.04 amd64
Sesso: Maschile
Località: Pisa
Contatti:

Re: [Java] RMI ConnectException

Messaggio da cortinico »

Ciao,

Potrebbe essere molto probabilmente un problema con il recupero del registro,
Ti consiglio di fare nel modo seguente:
sostituisci la riga dove hai scritto

Codice: Seleziona tutto

Registry r= LocateRegistry.getRegistry();
Con il codice seguente:

Codice: Seleziona tutto

int port = 56789;
Registry r;
try {
	r = LocateRegistry.createRegistry(port);
} catch (RemoteException e) {
	r = LocateRegistry.getRegistry(port);
}
Ovvio che la porta la puoi prendere anche in input negli argomenti che arrivano al main.
Tieni in considerazione che poi ti dovrai collegare su rmi://localhost:56789/CongressoServer

Se ti può servire ti linko anche questo progetto che ho fatto per un esame in cui veniva chiesto di usare RMI:
https://github.com/cortinico/tdp

In particolare le classi che ti interessano le trovi qui:
https://github.com/cortinico/tdp/tree/m ... p/user/rmi
"Look wide, and even when you think you are looking wide – look wider still!"
http://ncorti.com
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti