Ciao, sto studiando l'RMI per l'università. Ho scritto un semplice esempio, credo sia corretto ma non riesco a capire come eseguirlo.
Credo di eseguire male l'rmiregistry... Si parla di rmic e cose varie ma non ho ben capito.
Dato che è una giornata che cerco la soluzione ho pensato di chiedere aiuto.
Questo è il messaggio di errore che appare quando eseguo il programma.
jhgsf.jpg
Spero che il codice sia chiaro.
codice:import java.rmi.Remote; import java.rmi.RemoteException; public interface Validate extends Remote { public boolean val(String riga) throws RemoteException; }
codice:import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; public class Rmi { public Rmi(){} public static void main(String args[]) { try { Registry reg = LocateRegistry.getRegistry(); Validate stub = (Validate) reg.lookup("Validate"); if(stub.valid("ciao") == true){ System.out.println("OK"); }else{ System.out.println("NO"); } }catch (Exception e) { System.err.println("Client exception: " + e.toString()); e.printStackTrace(); } } }
codice:package rmix; import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class Impl implements Validate { public Impl(){} public boolean valid(String riga) { if(riga.length() <= 4 ){ return true; }else{ return false; } } public static void main(String args[]) { try { Impl obj = new Impl(); Validate stub = (Validate) UnicastRemoteObject.exportObject(obj, 0); Registry registry = LocateRegistry.getRegistry(); registry.rebind("Validate", stub); System.out.println("Server ready (CTRL-C quits)."); } catch(Exception e) { e.printStackTrace(); } } }
Non riesco proprio a capire cosa non va...

Rispondi quotando