Buffered image als Remote Parameter
lima-city → Forum → Programmiersprachen → Java
argument
bildschirm
code
extraklasse
image
internet
jemand
methode
objekt
parameter
pipeline
punkt
rufen
run
senden
server
stichpunkte
treten
url
versenden
-
Hallo,
ich versuche eine Remoteverbindung mit Java zu schreiben, bei der der Bildschirm des Gegenübers an den Anfordernden gesendet wird.
Den Schreenshot bekomme ich auch schön und möchte ihn nun als Buffered Image an den Server senden. Leider tritt hierbei immer ein Probem auf.
Weiß jemand, ob es vielleicht nicht möglich ist eine Methode auf dem Server auf zu rufen und als Parameter ein Buffered Image zu übergeben? Wenn ja, wie könnte ich das Problem lösen?
Hier der Fehler:
java.rmi.MarshalException: error marshalling arguments; nested exception is: java.io.NotSerializableException: java.awt.image.BufferedImage at Server_Stub.speicherScreen(Unknown Source) at ClientScreenControl.macheScreen(ClientScreenControl.java:30) at Client.run(Client.java:235) at java.lang.Thread.run(Thread.java:619) Caused by: java.io.NotSerializableException: java.awt.image.BufferedImage at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) ... 4 more
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du musst eine Kindklasse schreiben, die Serializable erbt und deren Methoden überschreiben. Andernfalls musst du eine Extraklasse schreiben, die BufferedImage Objekte zu einem seriellen Stream oder Ähnlichem verarbeitet. Eine Alternative fällt mir da nicht ein.
-
NotSerializableException
Sagt alles, oder nicht? Die Pipeline die du benutzt um Dinge über das Internet zu versenden verlangt, dass die genutzten Objekte Serializable sind.
Das wiederum erfordert allerdings auch, dass alle Member serializable sind.
Ich persönlich würde eine Klasse "SerializableBImage" oder ähnliches schreiben, die im Konstruktor ein BufferedImage erwartet. Dieses wird dann als ByteArray gespeichert. SerializableBImage muss dazu natürlich noch Serializable implementieren.
Diese Klasse bentuzt du dann um Bilder übers Netz zu schicken.
Edit:
Mhm. oO
Wieso habe ich denn die Meldung nicht erhalten, dass da schon jemand gepostet hat? :D
Beitrag zuletzt geändert: 1.6.2012 17:53:56 von adrians -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage