# RMI - Und es geht einfach nicht



## KaaNo (30. Jul 2005)

Hi,

da ich so richtig am verzweifeln bin und das springen vom 3. Stockwerk verhindert möchte, wende ich mich mal an Euch mit meinem Problem.

Da ich für ein Projekt von mir, an dem ich schon seit längerem arbeite, nun eine Netzwerkfähigkeit hinzufügen möchte, versuche ich mich in RMI. Das Prinzip davon habe ich verstanden und wollte es dann auch schon direkt implementieren. Zunächst funktionierte es eigentlich recht gut, da ich über das Netzwerk angebotene Objekte/Methoden aufrufen konnte. Ich muss nur recht schnell festellten, dass das nur bei mir lokal ging und nicht über das Netzwerk. Naja dann hab ich es mit den policies versucht und es ging auch nicht so wirklich.

Jetzt versuche ich erstmal nach den Tutorials zu gehn, die es ja reichlich im Internet dafür gibt und auch da geht das nicht so richtig. Ich bekomme diverse Fehler auch wenn die Tutorials 1 zu 1 von mir kopiert werden. Habe auch schon Java 1.5 ausprobiert, da ich bis dato nur mit Java 1.4.2 arbeite.

Naja vielleicht wisst ihr ja ne Lösung. Hier mal ein Beispielcode aus einem Tutorial:

Hello.class:


```
import java.rmi.*;
import java.rmi.server.*;

public class Hello extends UnicastRemoteObject implements HelloInterface {

  private String message;

  public Hello (String msg) throws RemoteException {
    message = msg;
  }

  public String say() throws RemoteException {
    return message;
  }
}
```

HelloInterface.class:


```
import java.rmi.*;

public interface HelloInterface extends Remote {

  public String say() throws RemoteException;
}
```

HelloServer.class:


```
import java.rmi.*;

public class HelloServer
{
  public static void main (String[] argv) {
    try {
      Naming.rebind ("rmi://localhost/Hello", new Hello ("Hello, world!"));
      System.out.println ("Hello Server is ready.");
    } catch (Exception e) {
      System.out.println ("Hello Server failed: " + e);
    }
  }
}
```

Die Fehlermeldung bei start von HelloServer.class:


```
Hello Server failed: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
	java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
	java.lang.ClassNotFoundException: Hello_Stub
```

start rmiregistry wird natürlich vorher ausgeführt und auch die Hello_Stub ist vorhanden.

g


----------



## spoensche (2. Aug 2005)

Hat dein hello interface von Home geerbt?


----------



## ans (2. Aug 2005)

Versuch mal dem Server folgende Option mit auf den Weg zu geben:
-Djava.rmi.server.codebase=file://<pfad zu den stubs>

gruss


----------

