Ciao a tutti, ho fatto un programmino di test per l'rmi è ho l'eccezione da titolo,vi ricopio il codice, sto usando netbeans con 3 progetti, uno è il server uno il client e l'altro è l'interfaccia remota...ho linkato l'interfaccia remota per avere il riferimento sia nel server che nel client:
Client:
codice:
 
package rmi.client;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import rmi.shared.IRemoteInterface;

public class RMIClient {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws NotBoundException, MalformedURLException, RemoteException{
       IRemoteInterface server = (IRemoteInterface)Naming.lookup("RMIService");
       server.output();
    }


}
Interfaccia:
codice:
 
package rmi.shared;

import java.rmi.Remote;
import java.rmi.RemoteException;


public interface IRemoteInterface extends Remote {
    
 public void output()throws RemoteException;
}
Server:
StartServer:
codice:
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import rmi.server.ServerClass;

public class StartServer {

	
	public static void main(String[] args)throws RemoteException,MalformedURLException {

		ServerClass server;
		server = new ServerClass();
		Naming.rebind("RMIService",server);
		System.out.println("Servers Started");
	}
}
ServerClass:
codice:
package rmi.server;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import rmi.shared.IRemoteInterface;


public class ServerClass  extends UnicastRemoteObject implements IRemoteInterface{
    public ServerClass() throws RemoteException {
	}
    @Override
    public void output(){
        System.out.println("Ciao! Sono il server che ti parla");
    }
    
}
l'errore avviene all'avvio della classe startserver, ho passato questi argomenti:
StartServer: -Djava.rmi.server.codebase="file://${workspace_loc:RMI-Shared}/bin/ file://${workspace_loc:RMI-Server}/bin/"
RMICLient: -Djava.security.policy=client.policy
naturalmente ho creato pure il policy
l'eccezione è questa:
codice:
Exception in thread "main" java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
	java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
	java.lang.ClassNotFoundException: rmi.shared.IRemoteInterface
	at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:419)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)
	at sun.rmi.transport.Transport$1.run(Transport.java:177)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:679)
	at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273)
	at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251)
	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377)
	at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
	at java.rmi.Naming.rebind(Naming.java:177)
	at StartServer.main(StartServer.java:13)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
	java.lang.ClassNotFoundException: rmi.shared.IRemoteInterface
	at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
	at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:409)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)
	at sun.rmi.transport.Transport$1.run(Transport.java:177)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.ClassNotFoundException: rmi.shared.IRemoteInterface
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:728)
	at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:672)
	at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:609)
	at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:646)
	at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:311)
	at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:255)
	at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1548)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1510)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1749)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
	... 12 more