Übertragung selbstdefinierter Klassen in der RMI

  • Themenstarter Themenstarter chrisi3210
  • Beginndatum Beginndatum
C

chrisi3210

Hallo !

Beim Versuch, eine selbstdefinierte Klasse zu übertragen erhielrt ich folgende Fehlermeldung:

java.rmi.MarshalException: error marshalling arguments; nested exception is:
java.io.NotSerializableException: Math.matatyp
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
at $Proxy0.seta(Unknown Source)
at Math.imathclient.main(imathclient.java:41)
Caused by: java.io.NotSerializableException: Math.matatyp
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at sun.rmi.server.UnicastRef.marshalValue(Unknown Source)

Irgendwie gibt es ein Problem mit der Serilasierung des Objektes.

Kann mir jemand erklären, wie man selbstdefinierte Klassen in der RMI übertragen werden können und wie sie hierfür serialisiert werden müssen?
 
Nein. Wie müsste denn eine solche Klasse mit java.io.Serializable implemtiert werden, damit das funktioniert?

Einfach

class matatyp implements Serializeable{

} ?
 
Hallo chrisi3210,

Normalerweise müsste es so gehen, da Objekte schließlich nicht nur bei der persistenten Speicherung serialisiert werden!

Wenn die genaue Implementierung von matatyp zur Kompilierzeit noch nicht bekannt ist, müsstest du ein Interface definieren, das sich von Serializable ableitet, z.B. matatypInterface.

matatype müsste dann Serializabe und dein eigenes Interface implementieren.

Die Fehlermeldung scheint mir aber so als würde deine Lösung reichen.

javaDeveloper2011
 
Zurück