Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    14

    [JAVA] Problema ClassCastException con Serializable

    Ciao a tutti! Ho un problema nel realizzare il mio tris... invio da client a server un oggetto Partita(serializable) che contiene tutte le informazioni che mi servono ma il server non riconosce l'oggetto nonostante la stessa classe Partita sia presente anche nel server. Pensavo bastasse impostare in entrambe le classi lo stesso serialVersionUID ma da ancora un problema di cast al momento della ricezione dell'oggetto!

    java.lang.ClassCastException: client.Partita cannot be cast to server.Partita

    potete aiutarmi???

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    posta un po' di codive please

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Problema ClassCastException con Serializable

    Originariamente inviato da cavo89
    java.lang.ClassCastException: client.Partita cannot be cast to server.Partita
    Si capisce già da qui che sono classi distinte, proprio come nome "qualificato". E non importa se il loro codice è anche perfettamente uguale. Sono tipi differenti già a livello di nome completo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    14
    Il programma è ideato per eseguire client e server in due computer diversi ma per ora il programma è uno solo ma si divide in due package, client e server! Ecco qualche pezzo del codice :
    codice:
    package client;
    
    import java.io.*;
    import java.util.Vector;
    
    public class Partita implements Serializable {
    
        private static final long serialVersionUID = 1L;
          ........
    poi compatto l'oggetto partita in un file .dat che invio tramite il socket
    codice:
    public static void compattaPart(Partita gioco, String indirizzo) throws Exception{
    
                    ObjectOutputStream oos = new ObjectOutputStream(
                                 new FileOutputStream(indirizzo)
                    );
    
                    oos.writeObject(gioco);
    
                    oos.close();
    
        }
    public static void sendFile(String fileName, ObjectOutputStream outStream) throws IOException
        {
            FileInputStream fis = new FileInputStream(fileName);
    	long longFileLength = (new java.io.File(fileName)).length();
    	int intFileLength = (int) longFileLength;
    	byte[] fileByteArray = new byte[intFileLength];
    	fis.read(fileByteArray);
    	fis.close();
    	outStream.writeObject(fileByteArray);
    	outStream.flush();
        }
    Il server riceve il file .dat e lo scompatta
    codice:
    public static Partita scompattaPart(String indirizzo) throws Exception{
    
            Partita gioco;
    
                    ObjectInputStream ois = new ObjectInputStream(
                        new FileInputStream(indirizzo)
                    );
    
                    gioco = (Partita) ois.readObject();  QUA DA ERRORE DI CAST
    
                    ois.close();
    
            return gioco;
        }
    that's all...come faccio a fargli capire che è la stessa classe???help!!!!!

  5. #5

    Re: [JAVA] Problema ClassCastException con Serializable

    Originariamente inviato da cavo89
    ...
    java.lang.ClassCastException: client.Partita cannot be cast to server.Partita
    ...
    La risposta alla tua domanda è già nella descrizione dell'errore. I package delle due classi sono differenti per cui non si può trattare dello stesso oggetto. Sposta la classe Partita in un package "neutro" che sia lo stesso sia per il codice lato server che per quello lato client.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    14
    Grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.