Avatar billede codeman79 Nybegynder
04. november 2003 - 14:27 Der er 5 kommentarer og
1 løsning

Serialisering af objekter

Hej,
Jeg er ved at udvikle en client-server applikation hvor der sker udveksling af serialiseret objekter frem og tilbage mellem server og de tilknyttede klienter.

Jeg har lavet en klasse Project som implementere Serializable interfacet. Hele forgreningen af et Project Object er serialiserbart.

Når serveren starter op, bliver der indlæst en masse Project objekter ind i en ArrayList fra en database. Hver gang en klient logger på serveren bliver hele denne ArrayList sendt til klienten. Klienten modtager listen og starter programmet der viser de indeholdte Project objekter.
Klienten kører en tråd der venter i et blokerende kald (readObject()).

Hvis klienten prøver, fra sit klient program at oprette et nyt projekt, så blir det nye projekt objekt (hvis oprettet i gyldig tilstand) sendt til Serveren. Serveren modtager det nyoprettede Project objekt og tildeler d en unik ID (int). Derefter bliver det nye projekt sendt tilbage til alle online klienter.
Når klienten så modtager det nye objekt i ObjectInputStream'en så opstår der en ClassCastException!

Jeg håber der er nogen der kan hjælpe mig med problemet her!!
Avatar billede arne_v Ekspert
04. november 2003 - 14:35 #1
Hvad er fejl teksten til den ClassCast Exception ?
Avatar billede arne_v Ekspert
04. november 2003 - 14:39 #2
Virker det hvis du kalder ObjectOutputStream reset før hver writeObject ?
Avatar billede codeman79 Nybegynder
04. november 2003 - 14:47 #3
Jeg får en null når jeg kalder getMessage() på den exception jeg får.
Nedenstående er en stackTrace

Connection terminated: null
java.lang.ClassCastException
    at java.io.ObjectInputStream.readTypeString(ObjectInputStream.java:1340)
    at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:536)
    at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:762)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1503)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
    at client.IOUtility$1.run(IOUtility.java:117)
Avatar billede codeman79 Nybegynder
04. november 2003 - 14:51 #4
Hos serveren instantiere jeg hver gang et nyt ObjectOutputStream når jeg kalder writeObject()
Avatar billede codeman79 Nybegynder
04. november 2003 - 15:09 #5
Det virkede sørme med reset()! Tak for hjælpen!
Avatar billede arne_v Ekspert
04. november 2003 - 15:46 #6
Fint - så ligger jeg et svar !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester