G
Guest
Gast
Hallo,
folgende Symptomatik.
Wir, in der Uni sollen ne RMI Bankanwendung schreiben. Geht auch alles soweit. Nur das ich leider feststellen musste, dass die Änderung auf der Client Seite nie wirklich beim Server ankommen. Also 10h angestrengt auf den Bildschirm gestarrt und dann an die "Insel gewendet".
In unserem Beispiel greift der Client auf die Interfaces zu die im Server Package liegen. Dachte mir das kann doch nicht sein, wenn dann sollte doch maximal die Schnittstelle bekannt geschweige denn das der Client gleich im Server Package rumfingert. Also hab ich mal versucht das Insel Beispiel nachzuschreiben.
Folgende Struktur:
Package Server->Main
Package Server->Server
Package Server->AddImpl
Package Server->Adder (Interface)
Package Client->Main
Package Client->Client
An der Stelle meckert die IDE natürlich da im Package Client sich kein Interface Adder befindet, dieser Brückenschlag ist in der "Insel" irgendwie untergegangen, in unserem Lehrbeispiel gab es dann ein import auf das Server Package.
Nun aber in Normalfall sind ja Server und Client nicht im selben Projekt. Es sollte ja nur die Schnittstelle Adder bekannt sein. Nur die allein macht nicht mit, zumindest nicht wenn man sie einfach in das Client Package kopiert.
//Das ist jetzt meine Eigenkreation, da ja dem Client das Interface Adder bekannt sein sollte ?!
Package Client->Adder (Interface hier ist wahrscheinlich der Haken)
//daraus resultiert dann folgende Fehlermeldung
Der Fehler lautet:
java.lang.ClassCastException: $Proxy0 cannot be cast to client.Adder
Könnt ihr mir helfen.
Grüsse Conrad
folgende Symptomatik.
Wir, in der Uni sollen ne RMI Bankanwendung schreiben. Geht auch alles soweit. Nur das ich leider feststellen musste, dass die Änderung auf der Client Seite nie wirklich beim Server ankommen. Also 10h angestrengt auf den Bildschirm gestarrt und dann an die "Insel gewendet".
In unserem Beispiel greift der Client auf die Interfaces zu die im Server Package liegen. Dachte mir das kann doch nicht sein, wenn dann sollte doch maximal die Schnittstelle bekannt geschweige denn das der Client gleich im Server Package rumfingert. Also hab ich mal versucht das Insel Beispiel nachzuschreiben.
Folgende Struktur:
Package Server->Main
Package Server->Server
Package Server->AddImpl
Package Server->Adder (Interface)
Package Client->Main
Package Client->Client
An der Stelle meckert die IDE natürlich da im Package Client sich kein Interface Adder befindet, dieser Brückenschlag ist in der "Insel" irgendwie untergegangen, in unserem Lehrbeispiel gab es dann ein import auf das Server Package.
Nun aber in Normalfall sind ja Server und Client nicht im selben Projekt. Es sollte ja nur die Schnittstelle Adder bekannt sein. Nur die allein macht nicht mit, zumindest nicht wenn man sie einfach in das Client Package kopiert.
Code:
Registry registry = LocateRegistry.getRegistry();
Adder adder = (Adder) registry.lookup( "Adder" );
System.out.println( adder.add( 47, 11 ) );
//Das ist jetzt meine Eigenkreation, da ja dem Client das Interface Adder bekannt sein sollte ?!
Package Client->Adder (Interface hier ist wahrscheinlich der Haken)
//daraus resultiert dann folgende Fehlermeldung
Der Fehler lautet:
java.lang.ClassCastException: $Proxy0 cannot be cast to client.Adder
Könnt ihr mir helfen.
Grüsse Conrad