Hallo,
ich habe mich eine Weile mit RMI beschaftigt, aber irgendwie komme ich nicht weiter.
Ich habe mich an dieses Tutorial (http://www.zerokspot.com/docs/progr....orial-ger/) gehalten, also das Intervace und die beiden Klassen des Servers erstellt. Mit dem RMICompiler (rmic.exe) habe ich ServerImpl compieliert und jetzt liegen im Ordner "C:\WorkSpace\RMItest\rmipack\" die Klassen (Server.class, ServerImpl.class, ServerImpl_Skel.class, ServerImpl_Stub.class, ServerProc.class). Wenn ich nun über die Konsole im Ordner "C:\WorkSpace\RMItest\" java rmipack.ServerProc eingebe kommt follgende Fehlermeldung:
"RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: rmipack.ServerImpl_Stub"
Ich verstehe das nicht... die ServerImpl_Stub.class liegt doch im Richtigen Ordner. Hat jemand eine Idee, woran es liegen könnte?!
gruß
Phill
PS: Hier noch mein Code:
//---Server.java
package rmipack;
import java.rmi.*;
public interface Server extends Remote
{
int getValue() throws RemoteException;
}
//--- ServerImpl.java
package rmipack;
import java.util.*;
import java.rmi.server.*;
import java.rmi.RemoteException;
public class ServerImpl extends UnicastRemoteObject implements Server
{
private int value;
public ServerImpl() throws RemoteException
{
this.value = 3;
}
public int getValue() throws RemoteException
{
return this.value;
}
}
//---------ServerProc.java
package rmipack;
import java.rmi.*;
import java.rmi.registry.*;
import java.rmi.server.UnicastRemoteObject;
class ServerProc
{
public static void main (String args []) throws RemoteException
{
//permission java.security.AllPermission;
if(System.getSecurityManager() == null)
{
System.setSecurityManager(new RMISecurityManager());
}
try {
ServerImpl obj = new ServerImpl();
Naming.rebind("rmi://localhost:1099/Server",obj);
}catch (Exception e){
System.out.println(e.getMessage());
}
//LocateRegistry.createRegistry(1099);
}
}
|