Jrmi stub zu implementation objekt
-
Geht das irgendwie?
Folgendes problem. Ich habe in dem remote interface welches ich exportieren will eine bestimmte funktion nicht enthalten da der client diese nicht braucht und auch nicht sehen soll.
Im server allerdings will ich diese funktion aufrufen. Geht das? Also das remote objekt was ich bekomme auf seine implementation klasse casten und dann die funktion ausführen. Gibts einen anderen weg so eine funktion zu definieren? Also der client bekommt diese funktion nie zu sehen nur der server kann sie aufrufen.
-
Äh dein Posting ist etwas verwirrend.
Also du hast in deinem Remote-Interface, nur die Methoden, die der Client sehen bzw. aufrufen soll, soweit verständlich und auch korrekt.
Was meinst du jetzt mit "Server"? Also es ist ja so, dass du dieses Interface auch implementieren musst, was man so machen kann, dass man in der Implementationsklasse dann auch von UnicastRemoteObject erbt, so dass die Implementierungsklasse dann auch als "Server" fungiert. In dem Server bindest du dieses Objekt (bzw. das Interface) an einen Namen in der RMI-Registry, so dass der Client sich dieses dann holen kann.
Wo ist jetzt das Problem? Du tust ja ansonsten nix weiter in deinem Implementierungs- bzw. Server-Objekt. Der Client ruft ja die Methoden auf (nämlich die, die er durch das Remote-Interface zu Gesicht bekommt).
Natürlich kannst du in deinem Implementierungsobjekt weitere (Hilfs-)Methoden definieren und diese auch intern aufrufen (z.B. von den Interface-Methoden), was man typischerweise auch so macht...