Ciao a tutti!! Ho un problema con RMI, ho realizzato un server che offre l'invocazione remota di due metodi tramite questa intefaccia e la sua implementazione:

codice:
import java.net.InetAddress;
import java.rmi.*;
import java.util.Vector;

public interface ServiziBoot extends Remote {
    
    public Vector<InetAddress> richiediLista();
    
    public void segnalaAffidabile(InetAddress ipAff);
    
}
codice:
import java.net.InetAddress;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
import java.util.Vector;

public class RMIServiziBoot extends UnicastRemoteObject implements ServiziBoot {

    public RMIServiziBoot() throws RemoteException {}
    
    public Vector<InetAddress> richiediLista() {
        return BootstrapServer.getLista();
    }

    public void segnalaAffidabile(InetAddress ipAff) {
        BootstrapServer.addInd(ipAff);
    }

}
main server:

codice:
....

public static void main(String[] args) {
        lista = new Vector<InetAddress>();
        try {
            
            addInd(InetAddress.getByName("144.166.1.1"));
            addInd(InetAddress.getByName("144.166.2.44"));
        } 
        catch (UnknownHostException ex) {}
        
        ObjectInputStream is = null;
        lista = new Vector<InetAddress>();
        
        try {
            is = new ObjectInputStream(new FileInputStream("lista.txt"));
            lista = (Vector<InetAddress>) is.readObject();
            is.close();
        } 
        catch (IOException ex) {} 
        catch (ClassNotFoundException ex) {}
        
        try {
            ServiziBoot server = new RMIServiziBoot();
            Naming.rebind("//localhost/RMIServiziBoot",server);
        } catch(RemoteException ex) {
            
        } catch(MalformedURLException e) {
            
        }

....
e un client per testarlo con il seguente codice:

codice:
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.Vector;

/**
 *
 * @author FedericaB
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Vector<InetAddress> lista = null;
        try {
            ServiziBoot listaServer = (ServiziBoot) Naming.lookup ("rmi://localhost/RMIServiziBoot");
            lista = listaServer.richiediLista(); 
        }
        catch(NotBoundException e) {
            e.printStackTrace( );
        }
        catch(RemoteException e) {
            e.printStackTrace( );
        }
        catch(MalformedURLException e) {
            e.printStackTrace( );
        }

        System.out.println("Lista " + lista.get(0).getHostAddress());

    }

}
Il server viene eseguito e termina, mentre il client genera i seguenti errori:


codice:
java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: 
        java.net.ConnectException: Connection refused: connect
        at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
        at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
        at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
        at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
        at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
        at java.rmi.Naming.lookup(Naming.java:84)
        at testrmiboot.Main.main(Main.java:27)
Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:519)
        at java.net.Socket.connect(Socket.java:469)
        at java.net.Socket.<init>(Socket.java:366)
        at java.net.Socket.<init>(Socket.java:180)
        at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
        at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
        at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
        ... 6 more
Exception in thread "main" java.lang.NullPointerException
        at testrmiboot.Main.main(Main.java:40)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
Sapreste dirmi dov'è il problema?

Grazie