# Frage zu RMI



## Hurby (5. Mai 2008)

Hallo,

ich habe gerade aus dem Buch "Java ist auch eine Insel" das Kapitel über RMI vor der Nase. Dazu eine Frage:

Beim Server wird mittels


```
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

import java.rmi.RemoteException;

import java.rmi.server.RemoteServer;
import java.rmi.server.UnicastRemoteObject;

public class RMIServer {

    public static void main(String[] args) throws RemoteException{
        LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
        
        AdderImpl adder = new AdderImpl();

        Adder stub = (Adder) UnicastRemoteObject.exportObject(adder,0);
        RemoteServer.setLog(System.out);
        
        Registry registry = LocateRegistry.getRegistry();
        registry.rebind("Adder", stub);
        
        System.out.println("Adder angemeldet");
    }
}
```

der Stub am Namensdienst angemeldet, dieser ist von einer Klasse AdderImpl, die eine Makierungsschnittstelle Adder implementiert, und die wiederrum java.rmi.Remote.

Wenn jetzt der Client sich in einem anderen Projekt befindet, bringt die Zeile:


```
Adder adder = (Adder) registry.lookup("Adder");
```

den Fehler "Cannot find symbol", ist ja klar denn die Klasse existiert nur auf dem Server. Ich kann mir aber nicht vorstellen, dass das ein Fehler im Buch ist. Kann mir bitte Jemand einen kleinen Denkanstoß geben...

MfG Hurby


----------



## tfa (5. Mai 2008)

Die Schnittstelle "Adder" sollte auf dem Client schon bekannt sein.


----------



## Hurby (5. Mai 2008)

Aha, danke.

Es reicht ja scheinbar aus, wenn es wieder nur eine Markierungsschnittstelle ist...

nochmals danke...

MfG Hurby


----------



## tfa (5. Mai 2008)

Dann wirst du vom Client aber keine Methoden aufrufen können, was die ganze Sache ziemlich sinnlos macht.


----------



## Hurby (5. Mai 2008)

doch doch, ich habe die add -methode leer implementiert und es hat funktioniert...


----------

