# Objekt Felder versenden



## Scarface (9. Jan 2008)

Hallo an alle.

Tut mir leid das ich einfach so was reinhaue hier aber ich habe ein riesen Problem.
Ich möchte mit einer RMI Applikation ein Array von einer eigenen Klasse übertragen.

Soll heißen, dass ich z.B. eine Klasse Flüge haben in denn ich Flüge speichern löschen bearbeiten kann und mir auch alle bereits gespeicherten Flüge anzeigen lassen kann. Diese Methode (showAll) hat als Rückgabewert ein Array vom Typ Flüge.
Wenn ich das nun durch meinen Client aufrufen will, dann sagt er mir:

java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
	java.lang.ClassNotFoundException: main.Flight
	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162)
	at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:179)
	at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
	at $Proxy2.showAll(Unknown Source)
	at gui.Main_win.<init>(Main_win.java:75)
	at gui.listener.Login_win_lis.login(Login_win_lis.java:143)
	at gui.listener.Login_win_lis.keyPressed(Login_win_lis.java:62)
	at java.awt.Component.processKeyEvent(Component.java:5475)
	at javax.swing.JComponent.processKeyEvent(JComponent.java:2722)
	at java.awt.Component.processEvent(Component.java:5294)
...

Ich denke das es eventuell was mit meinen Interfaces zutun hat da ja mein Client die main Klasse meiner Flüge nicht kennt nur das Interface halt. 
Oder was ich auch vermute und auch irgendwo einmal gelesen hatte ist, dass einen übertragung von Arrays ob eindimensional oder zweidimensional mittels RMI nicht möglich ist.
Stimmt das????
Wenn nicht wie kann ich es machen mit Serializable???
Wenn das geht wie genau???
Ich weiß ist recht speziell und etwas komliziert zu verstehen aber ich hoffe das sich jemand schonmal damit beschäftigt hat und eine Lösung gefunden hat. Wäre sehr dankbar für eine schnelle Lösung.


----------



## SlaterB (9. Jan 2008)

kannst du ein einzelnes Objekt übertragen? wenn nicht, dann fallen alle Teilfragen betreffend Arrays raus,

wie soll das funktionieren, wenn der Client die Klasse nicht kennt, sondern nur das Interface?
Operationen müssen doch auch ausgeführt werden, welcher Code wird dann genommen?


----------



## Scarface (9. Jan 2008)

ja also einzelne Objekte sind kein Problem das funktioniert ohne Probleme halt nur bei der Übergabe von einem Array macht er Probleme. Aber z.B. ein String[] das kann ich auch ohne Probleme Übergeben.


Na bei RMI ist es doch kein Problem das der Code auf Server liegt und der CLient die Methoden aufrufen kann dafür sind ja auf beiden Seiten die Interfaces und somit weiß der Client ja welche Methoden zu welcher Klasse gehören.


----------



## SlaterB (9. Jan 2008)

klingt plausibel,
die Exception scheint übrigens beim Server aufzutreten?
(at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162))

ich kann jedenfalls nix mehr beitragen


----------



## Scarface (10. Jan 2008)

Schade aber danke für deine Hilfe.
Hat jemand anderes vielleicht noch eine Idee wie ich das lösen könnte???
Hilfe!!!


----------



## tuxedo (10. Jan 2008)

Ähm, hab das jetzt nur überflogen, aber:



> java.lang.ClassNotFoundException: main.Flight



Die Klasse "main.Flight" wird da doch nicht gefunden. Bist du sicher dass die Klasse auf der entsprechenden Seite auch verfügbar ist? Ich mein die .class-File des Objekts selbst.

- Alex


----------

